ANTICHAT

ANTICHAT (https://forum.antichat.io/index.php)
-   PHP (https://forum.antichat.io/forumdisplay.php?f=37)
-   -   Скрипт-чекер траффика на ПХП (https://forum.antichat.io/showthread.php?t=108279)

$n@ke 27.02.2009 12:37

Скрипт-чекер траффика на ПХП
 
Увидел в подписи к теме "Написание скриптов", так вот хочу попросить умеющих - нужен скрипт вот такой:
Кидаем в форму список сайтов(ипов), скрипт находит соседей по ипу, потом каждого чекает на трафф.
Трафф можно чекать тут:
http://siteanalytics.compete.com/
или на alexa.com

Привязка к пхп в принципе не обязательна, можно и любой другой язык.главное - кроссплатформа.

BlackSun 27.02.2009 12:45

Нормальное оформление обязательно?) А так могу написать ..

$n@ke 27.02.2009 14:11

ну как нормальное - чтоб понятно было)) и конечно резалт чтоб можно было сейвить удобно))

Pashkela 02.03.2009 17:47

фиг там, в исходниках нет данных

http://siteanalytics.compete.com/

давай другой сайт для статистики без таких геморов - сделаю

vp$ 02.03.2009 17:58

писал под свои нужды
 
чекает список доменов, на рейт в алексе, все что выше 500000 сохраняет в файлик

PHP код:

<? 
function CheckTF($site)
    {     
$url     = 'http://data.alexa.com/data/eDzm91i1J200a2?cli=10&ver=ff-1.3.0&dat=ns&cdt=rq%3D0%26wid%3D29917&ref=&url=http%3A%2F%2F'.$site;
        
$res    = file_get_contents($url);
                if (
ereg ("(<POPULARITY URL=\"$site/\" TEXT=\")([0-9]{1,})(\"/>)", $res, $getrank))
                    return 
$getrank[2];
                    else
                    return 
false;
            
    }


    
    
set_time_limit(0);
    
$filesource        = 'sites.txt';
    
$fileres        = 'result.txt';
    
$result        = fopen($fileres, 'a+');
    
$fp                = file($filesource);
                for (
$n=0;$n<count($fp);$n++)
                {    
$site = trim($fp[$n]);
                    if (
$site!='' && strpos($site, '.'))
                    {
                        
$rank = CheckTF($site); 
                        if (
$rank)
                        {    if (
$rank < 500000)
                                {    
                                    echo 
$site."\t".$rank."\t!!!\n";
                                    
fwrite ($result,"$site\t$rank\n");
                                }
                            else
                                echo 
$site."\t".$rank."\n";
                                

                        }
                    }

                }

?>

под вин консоль написано, но можно и на сервер, тока \n нужно заменить на <br>, а \t на знак табуляции

Pashkela 02.03.2009 20:35

В общем вот, накалякал чото, проверил только на двух сайтах, инфо цепляется в таком виде:

RANK: SnapShot of ostrie.ru (rank #3,379,392) - Compete

соседи сгребаются с 2ip.ru

Код:

PHP код:

<pre>
<? 
@set_time_limit(0); 
@
ini_set("display_errors","1");

$ip_file = "ip.txt"; //Файл со списком IP на проверку (может быть просто домен вместо ip)
$log_file = "log123.txt"; //Файл, куда будут складываться результаты
$sleep = 0; // Пауза между запросами в секундах

   
function get($url) 
    { 
        
$ch = curl_init();   
        
curl_setopt($ch, CURLOPT_URL,$url); 
        
curl_setopt($ch, CURLOPT_RETURNTRANSFER,1); 
        
curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows; U; Windows NT 5.1; ru; rv:1.9.0.1) Gecko/2008070208'); 
        
$ss=curl_exec($ch); 
        
curl_close($ch); 
        return 
$ss; 
    } 

    
$handler=fopen($log_file,'a'); 
    
$ip = array_map("trim", file($ip_file)); 
    
$count = count($ip);
    for (
$i=0;$i<$count;$i++) {
       
$a=get('http://2ip.ru/server.php?ip='.$ip[$i]); 
       
preg_match_all('|<li>([^<a href=.*>.*</a>].*)</li>|U',$a,$sosedi);
       unset(
$sosedi[1][0]);
       
$count1 = count($sosedi[1]);
       if(
$handler) fwrite($handler,"IP:{$ip[$i]}   Соседей: $count1 " . "\r\n");
       for (
$z=1;$z<$count1;$z++) {    
          
$site = str_replace('www.','',$sosedi[1][$z]);
          
$a=get('http://siteanalytics.compete.com/'.$site.'/'); 
          
preg_match('|<title>(.*)</title>|',$a,$rank);        
          if (empty(
$rank[1])) $stat = 0;
          else 
$stat = $rank[1];
          if(
$handler) fwrite($handler,"Сосед $z: {$sosedi[1][$z]}/     RANK: $stat " . "\r\n");
          
sleep($sleep);
         }
                                     
       echo 
"host: {$ip[$i]} is done\n";
       if(
$handler) fwrite($handler,"-----------------------------------------------------" . "\r\n");
       
sleep($sleep);
    } 
    
fclose($handler);     

?>

</pre>



Время: 01:20