Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: А как отличит пользователей от ботов.
Форумы портала PHP.SU » » Вопросы новичков » А как отличит пользователей от ботов.

Страниц (1): [1]
 

1. mihai - 03 Июня, 2012 - 21:20:46 - перейти к сообщению
Господа.
Нацарапал себе счётчик для статистики, записываю и считаю пользователей по ip.

А как отличит пользователей от ботов?

Так чисто интуитивно понял что:

PHP:
скопировать код в буфер обмена
  1.  
  2. это google
  3. 66.249.66.82
  4. 66.249.71.23
  5.  
  6.  
  7. это яндекс
  8. 77.88.29.247
  9.  


а как других ботов опознать и как их вообще распознают.
2. Alho - 03 Июня, 2012 - 21:39:12 - перейти к сообщению
По клиенту.



А по ip - не самый лучший метод, и у гугла и яндекса ipшников до фига и больше.
3. mihai - 06 Июня, 2012 - 02:01:23 - перейти к сообщению
Я применил

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. $agent = $_SERVER['HTTP_USER_AGENT'];
  4.  
  5.  



выдаёт вот так

CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. 04.06.2012 02:09:52|77.88.29.247|/index.php?kat=61||| -bot- Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)|
  4. 04.06.2012 03:01:58|66.249.71.23|/index.php?kat=72||| -bot- Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)|
  5.  
  6.  



а как мне теперь записи сортировать?
по IP понятно это сюда этот туда
а вот эту запись как отсортировать


CODE (htmlphp):
скопировать код в буфер обмена
  1.  
  2.  
  3. Mozilla/5.0 (compatible; Googlebot/2.1; +http://www.google.com/bot.html)
  4.  
  5.  
4. Muxa - 06 Июня, 2012 - 08:43:22 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. <?PHP
  2. $str='04.06.2012 02:09:52|77.88.29.247|/index.php?kat=61||| -bot- Mozilla/5.0 (compatible; YandexBot/3.0; +http://yandex.com/bots)|';
  3. if(preg_match("[bot]i",$str))
  4. {
  5.  echo "bot";
  6. }
  7.  else
  8. {
  9.  echo "not bot";
  10. }
  11. ?>

 

Powered by ExBB FM 1.0 RC1