Форум о социальных сетях Поиск по форуму Инвестиции SMM обучение SMM курсы
Форум о социальных сетях Поиск по форуму Инвестиции SMM обучение SMM курсы
  • Страница 1 из 1
  • 1
Как бороться с ботами. Как определить Yandex, Google ботов.
#1
Четверг, 12.08.2010, 19:11
MrPower
Пользователь
Сообщения: 36
Репутация: -151
Довольно высоконагруженный сайт сильно донимали боты, которые воровали контент. Проблема не столько в контенте, сколько в том что они создавали больше половины нагрузки.

Необходимо было пресечь это дело, но так чтобы ботам поисковиков Yandex, Google, etc дать полную свободу.

Это было реализовано следующим путем.

get('ips');
if (!isset($ips['create'])){
$ips['create'] = time();
}
else{
$t = time();
$limit = 15*60;
/* если массив последних заходивших айпи больше 15 мин - очищаем */
if ($t>=($ips['create'] + $limit)){
$ips = array();
$ips['create'] = $t;
}
}
$ips[$REMOTE_ADDR]++;
$memcache->set('ips', $ips, false, 900);
}

/* если с этого ip было больше 1000 обращений за 15 мин - это бот */
if ($ips[$REMOTE_ADDR]>=1000){
/*
массив ключевых слов, наличие которых в ответе на системную функцию host
говорит нам, что этот бот - хороший
*/
$good_bots = array ('Yand', 'yand', 'YAND', 'goog', 'Goog', '
GOOG', 'Ramb', 'ramb', 'RAMB', 'msn', 'live',
'yahoo', 'aport', 'rol.ru', 'Aport');
$res = array();
$str = 'host '.$REMOTE_ADDR;
exec($str, $res);
/* делаем запрос к whois */
foreach ($good_bots as $k=>$v){
foreach ($res as $k1=>$v1){
if (strstr($v1, $v)){
/* если попалось ключевое слово - это хороший бот */
$good_bot = 1;
break;
}
}
}
/* заносим данные о боте в БД */
if ($good_bot==0){
mysql_query('insert into bad_bots (ip, data, agent)
values (\''.$REMOTE_ADDR.'\', NOW(), \''.$HTTP_USER_AGENT.'\')');
}else{
mysql_query('insert into good_bots (ip, agent)
values (\''.$REMOTE_ADDR.'\', \''.$HTTP_USER_AGENT.'\')');
}
}
}
mysql_close($link)
?>

Хочу РЕПУ +100
#2
Четверг, 12.08.2010, 19:13
EvIdAnSe
Проверенный
Сообщения: 243
Репутация: 1080
MrPower, это ваще не к селу не к городу как говориться. что вы этим хотели сказать? и кому вообще нужен этот непонятный скрипт
Цель: набрать репу 2000 *crazy*
#3
Четверг, 12.08.2010, 20:33
He1ko
Проверенный
Сообщения: 1302
Репутация: 2410
EvIdAnSe, это php, и по моему даже неправильный код) в начале не открывается. Ну и бессмысленный он)
Качественный рерайт статей, писать в ICQ: 1226363 или в ЛС
  • Страница 1 из 1
  • 1
Поиск:
Форум
Социальные сети
Хостинг от uCoz