Strict Standards: Resource ID#35 used as offset, casting to integer (35) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#37 used as offset, casting to integer (37) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401

Strict Standards: Resource ID#38 used as offset, casting to integer (38) in /home/tvoyweb/domains/tvoyweb.ru/public_html/forums/include/fm.class.php on line 401
ТвойWeb :: Версия для печати :: HTTP_REFERER не считает ботов почему-то. [3]
ТвойWeb » WebMaster класс » PHP/Perl » HTTP_REFERER не считает ботов почему-то.

Страниц (4): « 1 2 [3] 4 »
 

21. Alone - 25 Мая, 2007 - 01:28:07 - перейти к сообщению
ETC пишет:
Ты можешь внятно сказать, как и какой прогой/скриптом снимается статистика?


Ну это уже другой вопрос.

Ладно фиг с ними с этими ботами Улыбка
22. glaberzu - 20 Ноября, 2007 - 12:43:55 - перейти к сообщению
Alone
Интересный вопрос, кстати. Можно попробовать их определять по HTTP_USER_AGENT. Большинство - попадутся. Но некоторые маскируются (гугл кажется под Мозиллу косит).
CODE:

if (strstr($_SERVER['HTTP_USER_AGENT'], 'Yandex')){ $bot='Yandex'; }

Все. Знаем что яндекс. Далее берем REQUEST_URI как и говорил ETC. Узнаем по каким страницам шатается бот.
23. awep - 26 Ноября, 2007 - 01:26:20 - перейти к сообщению
раельно ботов можно вычислить только по HTTP_USER_AGENT, и то не всегда, т.к. маскироваться могут.
Вот список из ExBB FM:
CODE:
$spiders = array(
'Aport',
'archive_org',
'TurtleScanner',
'Nutscrape',
'WebSpeedReader',
'StackRambler',
'NetCaptor',
'Bond',
'Wget',
'Space Bison',
'msnbot',
'Yahoo',
'Mediapartners-Google',
'Googlebot',
'Yahoo-MMCrawler',
'Google',
'Slurp',
'ZyBorg',
'Gigabot',
'Exabot',
'Yandex',
'WebAlta',
'WebCrawler'
);

То есть проверяешь, если в $_SERVER['HTTP_USER_AGENT'] одно из этих значений, то это - бот.
24. Alone - 26 Ноября, 2007 - 04:51:09 - перейти к сообщению
Вопрос был в том что боты не отдают ссылки откуда они перешли refferer.
Т.е. интересно просто знать ссылки их маршрута посещений сайта.

Определить бот это или нет - это понятно, а вот узнать где он только что был...

Например GoogleBot - http://tvoyweb.ru/forums/topic.p...17&topic=436
Например Mail.ru - http://tvoyweb.ru/forums/topic.p...17&topic=435
Например Yahoo - http://tvoyweb.ru/forums/topic.p...17&topic=434
25. glaberzu - 26 Ноября, 2007 - 05:06:36 - перейти к сообщению
Alone
ВНимательно читай. Где он только что был определяется одном движением по ЮРИ (REQUEST_URI). А приходит он всегда из одного места - своего головного сайта (гугла, яндекса и т.д.) и прямо на твой сайт.

Для особо ленивых весь скрипт:
CODE:

if (strstr($_SERVER['HTTP_USER_AGENT'], 'Yandex')){ $bot='Yandex';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')){$bot='Google';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'Slurp')){$bot='Hot Bot search';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'WebCrawler')){$bot='WebCrawler search';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'ZyBorg')){$bot='Wisenut search';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'google')){$bot='Google';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'scooter')){$bot='AltaVista';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'StackRambler')){$bot='Rambler';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'aport')){$bot='Aport';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'lycos')){$bot='Lycos';}
else if (strstr($_SERVER['HTTP_USER_AGENT'], 'yahoo')){$bot='Yahoo';}
if($bot !=""){
$b_data = "bots.dat";
$inf = date("YmdHis",time());
$day = date("d.m.Y",time());
$time = date("H:i",time());
$ip = $REMOTE_ADDR;
$home = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$data = fopen($b_data, "a");
fwrite($data, "$inf|$day|$time|$bot|$ip|$home|\r\n");
fclose($data);
}

В bots.dat имеем всю поднаготную по каждому боту. $home - где сидит (ходит, что запросил).
26. Alone - 26 Ноября, 2007 - 06:57:41 - перейти к сообщению
glaberzu
Чёто не работает.

Кстати я подумал почему бы твой код не сократить до этого варианта:

CODE:
if($_SERVER['HTTP_USER_AGENT'] !=""){
$b_data = "bots.dat";
$inf = date("YmdHis",time());
$day = date("d.m.Y",time());
$time = date("H:i",time());
$ip = $REMOTE_ADDR;
$home = $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
$data = fopen($b_data, "a");
fwrite($data, "$inf|$day|$time|$bot|$ip|$home|\r\n");
fclose($data);
}


Один хрен...
27. Furax - 26 Ноября, 2007 - 08:00:14 - перейти к сообщению
Alone
А так не только боты будут логиться, но и все юзеры.
28. Alone - 26 Ноября, 2007 - 08:03:32 - перейти к сообщению
Furax пишет:
А так не только боты будут логиться, но и все юзеры.

Ну так хорошо.
Но не работает...
29. Alone - 26 Ноября, 2007 - 08:43:28 - перейти к сообщению
О, чудо! Всё работает Улыбка
Это я не туда код просто прописал, блин.
Всё работает.
Сенкс.
30. glaberzu - 26 Ноября, 2007 - 09:49:48 - перейти к сообщению
Alone
Вот люди пошли. Улыбка Внимательно все делай и читай и будет тебе счастье. Все работает.
Удачи Хорошо

Форум на AlfaSpace.NET


Powered by ExBB
ExBB FM 1.0 RC1 by TvoyWeb.ru
InvisionExBB Style converted by Markus®

[Script Execution time: 0.0342]     [ Gzipped ]