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. Extazy - 08 Декабря, 2014 - 23:58:09 - перейти к сообщению
Уважаемые гуру!
Мне необходимо отследить обращение различных ботов к файлам моего сайта. Именно файлам .jpg, .css, а не самим страницам.

Вот код для отслеживания ботов:
PHP:
скопировать код в буфер обмена
  1. function robot ($bot)
  2. {
  3.  if(strpos($_SERVER['HTTP_USER_AGENT'], $bot)!==false)
  4.  {
  5.  $text = date("Y-m-d H:i") . " $bot посетил страницу: ". $_SERVER['REQUEST_URI']."\r\n";
  6.  // запись в файл
  7.  $file = fopen("bot.txt","a");
  8.  fwrite($file, $text);
  9.  fclose ($file);
  10.  // отправка на почту
  11.  mail('example@gmail.com', "$bot посетил страницу", $text);
  12.  }
  13. }
  14.  
  15. // отслеживаем роботов
  16. robot('Googlebot');
  17. robot('Yandex');


Но он ведь не сработает, если бот минуя все страницы обратился сразу к файлу.. верно? Может как-то через .htaccess можно подключить отслеживание? Растерялся
2. nkl - 09 Декабря, 2014 - 08:05:06 - перейти к сообщению
Можно парсить access-лог веб-сервера. Там-то все регистрируется, будь-то запрос на получение CSS или спрайта с иконками.
3. DeepVarvar - 09 Декабря, 2014 - 10:13:50 - перейти к сообщению
Вот список ботов по юзерагентам:
http://en[dot]wikipedia[dot]org/wiki/Wik[dot][dot][dot]_number_of_edits
Я сомневаюсь что он полный ))
Эт к чему - ты просто запаришься ловить конкретно бота.
А еще не факт что у бота будет ботовый юзерагент, поставят как у обычного браузера и уже не отличишь.
4. Extazy - 09 Декабря, 2014 - 10:22:36 - перейти к сообщению
Мне нужен конкретный бот под именем Odnoklassniki. В acces логах он есть.
Подскажите, каким кодом можно было бы удобно парсить все записи нужного мне бота из access.log, acces.log1, access.log2 ?
5. DeepVarvar - 09 Декабря, 2014 - 10:48:08 - перейти к сообщению
CODE (bash):
скопировать код в буфер обмена
  1. grep odnoklassniki -i ./access.log
6. Extazy - 09 Декабря, 2014 - 11:00:50 - перейти к сообщению
а куда это вписывать?) в командную строку?) а можно сделать чтоб на автомате парсилось и в файл записывалось?
7. DeepVarvar - 09 Декабря, 2014 - 13:58:15 - перейти к сообщению
PHP:
скопировать код в буфер обмена
  1. exec('grep odnoklassniki -i /path/do/access.log >> /path/do/filtered.log');

 

Powered by ExBB FM 1.0 RC1