Скрипт статистики посещений поисковыми ботами

Лично мне очень любопытно, какой бот когда заходил ко мне на сайт и что смотрел. Если Вы также имеете заинтересованность в ведении подобного учета посещений сканерами, Вам обязательно пригодится данный скрипт.

Скрипт написан на PHP (возможна работа как в режиме PHP-как-модуль-Апача, так и в PHP-как-FastCGI), полностью валиден (в рамках соответствия стандартам XHTML11, XHTML1/Strict и CSS/3), имеет гибкую систему настроек и панель настройки ботов.

Скрипт: botstat.zip
Обновление до текущей версии (с версии 1.3.11): botstat_upgrade.zip

Версия: 1.03 (rev.0015)
Последнее обновление: 06.11.2009, 20:43 мск

Список изменений версии 1.03.0015:
• [!] Устранена критическая проблема безопасности.
• [+] Доработан механизм автоматического информирования администратора о наличии новых версий.
• [*] Исправлен баг, в результате которого не фиксировались посещения одним из ботов Rambler‘а.
• [*] Исправлен баг, возникающий при одновременном добавлении 5 ботов в админке.

Список изменений версии 1.03.0011:
• [!] Устранена критическая проблема безопасности.
• [+] Добавлен механизм автоматического информирования администратора о наличии новых версий.
• [+] Усовершенствовано отображение ботов с длинными строками User-Agent.

Список изменений версии 1.02.0008:
• [+] Усовершенствован механизм постраничного разбиения.
• [*] Мелкий багфикс.

Список изменений версии 1.02.0007:
• [+] Добавлено постраничное разбиение в режиме просмотра детального списка посещений выбранным ботом.
• [+] В панели администратора добавлена опция единовременной ручной очистки детализированного лога.

Список изменений версии 1.01.0004:
• [+] Усовершенствована панель администратора: реализована в виде многовкладочного окна, теперь абсолютно все настройки можно редактировать не прибегая к редактированию файлов.
• [*] Множественный мелкий багофикс.

Пример использования (уровень доступа — пользователь): bots.php

Инструкция по установке:

  1. Распакуйте архив в корень вашего сайта
  2. Добавьте следующий фрагмент в файл .htaccess:
    <Files "bot_stat.*">
    Order Allow,Deny
    Deny from All
    </Files>
     
    <Files "bots_*">
    Order Allow,Deny
    Deny from All
    </Files>
     
    <Files "bots.php">
    	<IfModule mod_fastcgi.c>
    	<IfModule mod_rewrite.c>
    		RewriteEngine On
    		RewriteCond %{HTTP:Authorization} !^$
    		RewriteRule ^(.+)\.php$ $1.php?HTTP_AUTH=%{HTTP:Authorization} [QSA,L]
    	</IfModule>
    	</IfModule>
    </Files>
  3. Добавьте следующий код:
    <?php require_once 'bot_stat.php'; ?>

    в файл, общий для всех страниц Вашего сайта (предпочтительно — в начало файла ‘header.php’)

  4. Настройте права доступа к файлам:
    Оптимистичный вариант: на сервере используется mpm-itk, либо PHP-как-CGI:

    • Установите права 644 на все файлы скрипта

    Чуть менее оптимистичный вариант: есть возможность сменить владельца файлов:

    • Смените владельца всех файлов скрипта на ‘apache’
    • Установите права 644 на все файлы скрипта

    Пессимистичный вариант: возможности ограничены хостером:

    • Установите права 666 на файлы: bot_stat.log, bot_stat.txt, bots_settings.php
    • Установите права 644 на остальные файлы.
  5. Приступим к настройке конфига (файл ‘bots_settings.php’):
    • Админ (имеет право вносить и удалять боты): $admin_login, $admin_password
    • Если $admin_login равен пустой строке, то все имеют уровень доступа администратора (НЕ рекомендуется!)

    • Юзер (имеет право просматривать статистику): $user_login, $user_password
    • Если $user_login равен пустой строке, то все имеют уровень доступа пользователя.

    • $current_lang:
      • auto — автоопределение языка пользователя (Рекомендуется!)
      • en — Английский/международный
      • ru — Русский
      • … — Любой другой, перевод на который Вы сможете осуществить.
    • $current_charset — charset Вашего сайта (по крайней мере в отношении url’ов)
    • $botdetails_reverse — порядок отображения списка URI, посещенных ботами:
      true/false.
    • $botdetails_page_len — количество записей, одновременно выводимых на экран в режиме детализированного отчета о посещениях выбранного бота.

Будущие версии буду выкладывать здесь же.

При обновлении предыдущих версий скрипта, не перезаписывайте файлы: bot_stat.log и bot_stat.txt, а в файле bots_settings.php введите заново логины и пароли.

Обсуждение на форуме: http://usings.ru/forum/viewtopic.php?t=13

admin опубликовано 2009-7-12 Рубрика: PHP | Метки: , , , , ,

93 ответов Оставить комментарий

  1. #46DrCrash @ 2010-4-3 23:10

    Хороший скрипт наверное… Жаль только, что только через php инклюдится :( . Шаблон моего сайта не позволяет так инклюдить :(

  2. #47Владимир @ 2010-5-4 20:29

    Странно но у меян скрип не запустился (( выдал ошибку 500 ! ((((
    Что бы не дела как только вписываешь в файл .htaccess:

    Order Allow,Deny
    Deny from All

    Order Allow,Deny
    Deny from All

    RewriteEngine On
    RewriteCond %{HTTP:Authorization} !^$
    RewriteRule ^(.+)\.php$ $1.php?HTTP_AUTH=%{HTTP:Authorization} [QSA,L]

    Все сразу же не работает ((((

  3. #48Владимир @ 2010-5-4 20:41

    Все разхобрался )))) спасибо )))

  4. #49Станислав @ 2010-6-18 19:32

    В админке почемуто все таблички смещщены и не работают. Что может быть не так??? Заранее спасибо..

  5. #50Станислав @ 2010-6-18 19:41

    Opera AC 3.5.2 именно в этом браузере кривится все (что очень странно Опера обычно не глючит) В остальных смотрел все отлично…

  6. #51admin @ 2010-6-18 20:17

    В Opera AC не проверял. Проверял в IE 7+, FF 1/3, Opera 9/10, Chrome — все прекрасно отображается. Вывод: это баг сборки Opera AC, скорее всего.

  7. #52Станислав @ 2010-6-18 20:43

    Спасибо за оперативность, приятный модуль, сколько стоит платная версия если можно на емаил?

  8. #53Топ-10 @ 2010-7-1 15:02

    Офигительный скрипт. В связи с последними завихрениями яндекса очень полезно смотреть когда этот долбаный бот, что индексирует

  9. #54Станислав @ 2010-7-22 22:50

    Дмитрий модуль просто изумительный, жаль на мели сейчас :-( , но это временно… У меня тут идея созрела небольшая, но релизовать не смогу (учусь только… :-D ) Суть…
    Сделать вывод строки посещения ботов онлайн, чтобы ее можно было интегрировать на сайт. Например гдето маленькое окно и в нем информация следующая. «Сейчас на сайте 3 бота» То есть те что в режиме онлайн.

  10. admin @ 2010-7-22 23:14

    А причем здесь «на мели». Скрипт имеет free-версию. Платная готова, но пока под нее только страница оформляется.
    Что касается вашего пожелания — это запросто. А что посоветуете считать в качестве «сейчас»? Интервал времени минут в 10?

  11. #55Ginom @ 2010-9-9 23:10

    Пытался поднять под iis 7.5// скрипт даже страницу нормально не генерит.

  12. #56Хос @ 2010-9-10 17:06

    Скрипт МЕГА зачет! Автору респект! Тут появился такой вопрос: Как настроить текущую дату и время? Дата отображается нормально, а вот время нет.

  13. admin @ 2010-9-10 18:11

    Самое простое — вставьте в файл bot_stat.php в 5 строку, т.е. перед строкой $IS_BOT = true; следующую строку:
    @date_default_timezone_set('Europe/Moscow');Вместо «Europe/Moscow» поставьте место, где находится ваш сервер, если он не в Москве.
    Тогда новые записи будут в правильном времени.

  14. #57Хос @ 2010-9-11 06:53

    С часами вроде разобрался, вот только разницу в 20 минут никак победить не могу((

  15. #58Хос @ 2010-9-11 15:24

    Победил… Оказалось косяк был на самом сервере.

  16. #59Владимир @ 2010-9-19 03:58

    Не могу понять что у меня с руками !!! (((
    Скипт запускается показывает что ботов 0 уже месяцей 5-6 (бред)
    при нажатие на «Панель администратора >>» выходит белый экран по ссылке «http://www.******.ru/bots.php?admin=1″ и все !
    Это нормально ???
    Большое спасибо за ответ !

  17. #60Прохожий @ 2010-10-14 21:47

    Здравствуйте! Что делать, если файл .htaccess не поддерживается сервером?

  18. admin @ 2010-10-14 21:58

    Добрый вечер. Тогда ставьте без него, но это потенциальная брешь в безопасности.

  19. #61Михаил @ 2010-11-19 16:12

    «Скипт запускается показывает что ботов 0 уже месяцей 5-6″ — для проверки скрипта воспользуйтесь бесплатной программой Henu home.snafu.de/tilman/xenulink.html она просканирует ваш сайт и отметится на страничке скрипта как бот.
    И столько месяцев ждать не надо. А заодно проверит внутренние ссылки сайта.

  20. #62Vit @ 2010-11-27 16:38

    Скажите пожалуйста, на сколько большие файлы логов получаются при длительном использовании скрипта?

  21. admin @ 2010-11-28 02:48

    Это зависит от посещаемости ботами, разумеется.
    В среднем — приблизительно 120 байт на 1 запись. 1 запись — это запись о посещении ботом одной страницы (сюда не попадают запросы статики и т.д.).
    На данном сайте — это примерно 50000-70000 запросов (или 6-10 Мбайт) в год.

  22. #63Сергей @ 2010-11-28 12:52

    Интересный скрипт. Спасибо, скачал, установил.

  23. #64Эдуард @ 2010-12-30 16:22

    а куда именно в файл, общий для всех страниц Вашего сайта можно поподробней с примером.

  24. #65Alexey @ 2011-1-7 18:00

    Долго искал нечто подобное и вот наконец-то нашел…
    Огромное спасибо!!!

  25. #66Евгений @ 2011-1-25 13:56

    Здравствуйте. Запуская скрипт, не правильно отображается кодировка, и выдаёт множество ошибок, как пример:
    Notice: Undefined index: admin in /var/www/html/bots.php on line 63

    Notice: Undefined index: admin in /var/www/html/bots.php on line 213

  26. #67Евгений @ 2011-1-25 14:35

    Как узнать, всё ли правильно сделано. В данный момент, не видно чтоб, как-то робот нас обходил.

  27. admin @ 2011-1-25 16:09

    Это не ошибки, это — notice’ы. Любой скрипт выдает их пачками, если это указано в настройках php.
    Чтобы избавиться от них, добавьте строку в начало кода bots.php: error_reporting(E_ERROR);

  28. admin @ 2011-1-25 16:11

    Прверьте, существуют ли файлы bot_stat.log и bot_stat.txt, и права на запись в них для пользователя, под кем работает apache.
    Если все верно, натравите гугл на ваш сайт. В интрументах для вебмастера в гугле есть функция «Просмотреть как Googlebot».

  29. #68Евгений @ 2011-1-25 17:47

    Всё сделал, как Вы описали, права даже 777 выдавал, не хочет роботов показывать(
    Через гугл несколько раз запросы делал

  30. admin @ 2011-1-25 17:56

    Убедитесь, что скрипт вообще вызывается, т.е. что в php-код, общий для всех страниц сайта, вставлена строка php require_once 'bot_stat.php';
    Если так и не найдете ошибки, скиньте доступ на admin{a}usings.ru, посмотрю сам.

  31. #69Евгений @ 2011-1-25 17:59

    Могли бы Вы прочесть ЛС на Вашем форуме.

  32. #70Станислав @ 2011-2-16 21:28

    «Что касается вашего пожелания – это запросто. А что посоветуете считать в качестве «сейчас»? Интервал времени минут в 10?»

    Думаю 10 минут маловато скорее всего 15-20 минут выставить будет то что нужно.
    Если конечно есть время и желание реализовать такую опцию. Очень удобно когда показывает сколько гостей скажем на сайте и сколько ботов. Если имя бота прописано, то это было бы верх мечтаний.

  33. #71TEJlO @ 2011-4-13 21:06

    Как установить эту статистику на VDS ? На обычном хостинге все норм работало на VDS не хочет

  34. admin @ 2011-4-13 21:16

    Не имеет значения, ВДС или нет. Смотрите логи на предмет ошибок.

  35. #72Ярослав @ 2011-7-10 13:08

    Добрый день,
    попробовал установить скрипт по вашей инструкции, однако столкнулся с проблемой: при входе в скрипт по адресу http://адрес сайта/bots.php выскакивает форма запроса логина и пароля. после ввода логина и пароля ничего не происходит, т.к. опять выскакивает эта же форма. Пробовал как пароль, который ввел самостоятельно в файл bots_settings.php, так и пароль, который был там изначально.

    Подскажите, пожалуйста, что я делаю некорректно.
    использую хостинг с поддержкой CGI, MySQL, SSI, Perl, PHP, Python, crontab, htaccess, phpMyAdmin;

    Заранее благодарю за ответ и помощь

  36. admin @ 2011-7-11 14:32

    :Добрый день. Логин вводите точный (с маленькой буквы)?

  37. #73seolamo @ 2011-8-28 23:03

    Здравствуйте! Платная версия с поддержкой сбора статистики по нескольким доменам продается? Или по-прежнему только лайт?

  38. admin @ 2011-8-29 01:07

    К сожалению, пока нет.

  39. #74Вадим @ 2011-9-15 08:40

    Всем привет хороший скрипт,работает нормально уже месяц пока багов не было,подскажите нашол ктонибудь решение как реализовать вывод на странице сайта сколько и каких ботов находится на сайте онлайн.

  40. admin @ 2011-9-15 16:16

    Это не проблема, напишите простой скрипт, который будет читать первые несколько строк из файла bot_stat.txt.
    Вот пример: bot_online.phps

  41. #75Геннадий @ 2011-11-9 04:27

    Добрый день! Очень хочеться воспользоваться вашим скрипном, но проблема та же что и у

    «Владимир @ 2010-9-19 03:58″ при нажатии на «Панель администратора >>» выходит белый экран по ссылке «http://www.******.ru/bots.php?admin=1″ и все !

    xenu вообще отказываеться сканировать сайт дальше главной страницы, пока скрипт на сайте. Соответственно и робот яндекса может не пройти!? пришлось временно удалить. xenu снова работает. Буду благодарен решению проблемы. Спасибо.

  42. admin @ 2011-11-22 22:02

    Что при этом в логах апача?
    Да, кстати, а что такое xenu?

  43. #76Андрей @ 2011-12-20 12:54

    Добрый день! Есть ряд предложений по развитию вашего скрипта. Считаю, что однозначно нужна платная расширенная версия. Готов обсудить в скайпе. Свяжитесь со мной. Также готов оказать свою финансовую поддержку.

Ответить

(Ctrl + Enter)