Как с помощью PHP скрипта выявить роботов поисковиков?

12
S
На сайте с 04.02.2007
Offline
341
svv
1261

Как с помощью PHP скрипта выявить роботов поисковиков?

Просто проблема в том, что имеется периодически начинающаяся ДДоС атака на сайт. Атака не сильная, поэтому просто блокируем на время IP за превышение количества переходов. К сожалению, в числе блокированных могут быть и роботы поисковиков. Как их сразу выявить для добавления в белый список? Как я понимаю, IP у них меняются.

AlikZP
На сайте с 22.11.2009
Offline
107
#1

Я использую такой код:

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

else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')){$bot='Google';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Mediapartners-Google')){$bot='Mediapartners-Google (Adsense)';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Slurp')){$bot='Hot Bot search';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'WebCrawler')){$bot='WebCrawler search';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'ZyBorg')){$bot='Wisenut search';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'scooter')){$bot='AltaVista';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'StackRambler')){$bot='Rambler';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Aport')){$bot='Aport';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'lycos')){$bot='Lycos';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'WebAlta')){$bot='WebAlta';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'yahoo')){$bot='Yahoo';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'msnbot')){$bot='msnbot/1.0';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'ia_archiver')){$bot='Alexa search engine';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'FAST')){$bot='AllTheWeb';}
Website CMS: быстрая, удобная, недорогая! Вечная лицензия за 45$ (/ru/forum/524503) Яся - быстрый поиск фото для товаров. OpenCart/ocStore. Дополнение. (/ru/forum/665287) Грамотная верстка ваших макетов (/ru/forum/comment/8853216)
RO
На сайте с 13.07.2009
Offline
88
#2

AlikZP, через свитч по красивей это сделать можно :)

T.R.O.N
На сайте с 18.05.2004
Offline
314
#3
RedOK:
через свитч по красивей это сделать можно

да, смотрится красивее, но работает медленнее. хотя, возможно, в таком примере это и не столь важно

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
rbbumfirst
На сайте с 03.04.2009
Offline
87
#4
AlikZP:
Я использую такой код:
if (stristr($_SERVER['HTTP_USER_AGENT'], 'Yandex')){ $bot='Yandex';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')){$bot='Google';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'Mediapartners-Google')){$bot='Mediapartners-Google
...

else if (stristr($_SERVER['HTTP_USER_AGENT'], 'WebAlta')){$bot='WebAlta';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'yahoo')){$bot='Yahoo';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'msnbot')){$bot='msnbot/1.0';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'ia_archiver')){$bot='Alexa search engine';}
else if (stristr($_SERVER['HTTP_USER_AGENT'], 'FAST')){$bot='AllTheWeb';}

а что мешает подменить заголовок User-agent ?

ini_set("user_agent","Googlebot");

Web developer (http://rudov.com). разработка на Go, ReactJS, React Native
Str01tel
На сайте с 27.12.2009
Offline
26
#5

Проверка бота на вшивость,

http://www.google.com/support/webmasters/bin/answer.py?answer=80553

и так можно проверить практически любого бота

T
На сайте с 13.01.2009
Offline
50
#6

rbbumfirst, вы правы, но какой смысл ? Чтобы точнее по IP можно определять

rbbumfirst
На сайте с 03.04.2009
Offline
87
#7
Troytft:
rbbumfirst, вы правы, но какой смысл ? Чтобы точнее по IP можно определять

что не мешает выдавать себя за бота. притупить бдительность так сказать. про IP то мы подумали только сейчас, а в это время уже кто то парсит наш сайт и т.п.

D
На сайте с 09.07.2009
Offline
79
#8
rbbumfirst:
что не мешает выдавать себя за бота. притупить бдительность так сказать. про IP то мы подумали только сейчас, а в это время уже кто то парсит наш сайт и т.п.

От парсинга и так нельзя защититься..

rbbumfirst
На сайте с 03.04.2009
Offline
87
#9
digwnews:
От парсинга и так нельзя защититься..

это тема другого разговора...

согласен, но можно просто дать контент на блюдечке, а можно еще заставить немного пораскинуть мозгами.

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

D
На сайте с 09.07.2009
Offline
79
#10
rbbumfirst:
это тема другого разговора...
согласен, но можно просто дать контент на блюдечке, а можно еще заставить немного пораскинуть мозгами.

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

А какая разница - бот или не бот?

Вы хотите усложнить жизнь нормальным юзерам?

12

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий