Форум АНТИЧАТ

Форум АНТИЧАТ (https://forum.antichat.xyz/index.php)
-   PHP, PERL, MySQL, JavaScript (https://forum.antichat.xyz/forumdisplay.php?f=37)
-   -   Скрипт-чекер траффика на ПХП (https://forum.antichat.xyz/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($chCURLOPT_URL,$url); 
        
curl_setopt($chCURLOPT_RETURNTRANSFER,1); 
        
curl_setopt($chCURLOPT_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(
$handlerfwrite($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(
$handlerfwrite($handler,"Сосед $z{$sosedi[1][$z]}/     RANK: $stat " "\r\n");
          
sleep($sleep);
         }
                                     
       echo 
"host: {$ip[$i]} is done\n";
       if(
$handlerfwrite($handler,"-----------------------------------------------------" "\r\n");
       
sleep($sleep);
    } 
    
fclose($handler);     

?>

</pre>



Время: 22:09