PDA

Просмотр полной версии : Скрипт-чекер траффика на ПХП


$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 сохраняет в файлик

<?
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

Код:


<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>