Скрипт статистики посещений поисковыми ботами
Лично мне очень любопытно, какой бот когда заходил ко мне на сайт и что смотрел. Если Вы также имеете заинтересованность в ведении подобного учета посещений сканерами, Вам обязательно пригодится данный скрипт.
Скрипт написан на 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
Инструкция по установке:
- Распакуйте архив в корень вашего сайта
- Добавьте следующий фрагмент в файл .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>
- Добавьте следующий код:
<?php require_once 'bot_stat.php'; ?>
в файл, общий для всех страниц Вашего сайта (предпочтительно — в начало файла ‘header.php’)
- Настройте права доступа к файлам:
Оптимистичный вариант: на сервере используется mpm-itk, либо PHP-как-CGI:- Установите права 644 на все файлы скрипта
Чуть менее оптимистичный вариант: есть возможность сменить владельца файлов:
- Смените владельца всех файлов скрипта на ‘apache’
- Установите права 644 на все файлы скрипта
Пессимистичный вариант: возможности ограничены хостером:
- Установите права 666 на файлы: bot_stat.log, bot_stat.txt, bots_settings.php
- Установите права 644 на остальные файлы.
- Приступим к настройке конфига (файл ‘bots_settings.php’):
- Админ (имеет право вносить и удалять боты): $admin_login, $admin_password
- Юзер (имеет право просматривать статистику): $user_login, $user_password
- $current_lang:
- auto — автоопределение языка пользователя (Рекомендуется!)
- en — Английский/международный
- ru — Русский
- … — Любой другой, перевод на который Вы сможете осуществить.
- $current_charset — charset Вашего сайта (по крайней мере в отношении url’ов)
- $botdetails_reverse — порядок отображения списка URI, посещенных ботами:
true/false. - $botdetails_page_len — количество записей, одновременно выводимых на экран в режиме детализированного отчета о посещениях выбранного бота.
Если $admin_login равен пустой строке, то все имеют уровень доступа администратора (НЕ рекомендуется!)
Если $user_login равен пустой строке, то все имеют уровень доступа пользователя.
Будущие версии буду выкладывать здесь же.
При обновлении предыдущих версий скрипта, не перезаписывайте файлы: bot_stat.log и bot_stat.txt, а в файле bots_settings.php введите заново логины и пароли.
Обсуждение на форуме: http://usings.ru/forum/viewtopic.php?t=13
51 ответов Оставить комментарий
В Opera AC не проверял. Проверял в IE 7+, FF 1/3, Opera 9/10, Chrome — все прекрасно отображается. Вывод: это баг сборки Opera AC, скорее всего.
Спасибо за оперативность, приятный модуль, сколько стоит платная версия если можно на емаил?
Офигительный скрипт. В связи с последними завихрениями яндекса очень полезно смотреть когда этот долбаный бот, что индексирует
Дмитрий модуль просто изумительный, жаль на мели сейчас :-(, но это временно… У меня тут идея созрела небольшая, но релизовать не смогу (учусь только… 😀 ) Суть…
Сделать вывод строки посещения ботов онлайн, чтобы ее можно было интегрировать на сайт. Например гдето маленькое окно и в нем информация следующая. «Сейчас на сайте 3 бота» То есть те что в режиме онлайн.
А причем здесь «на мели». Скрипт имеет free-версию. Платная готова, но пока под нее только страница оформляется.
Что касается вашего пожелания — это запросто. А что посоветуете считать в качестве «сейчас»? Интервал времени минут в 10?
Пытался поднять под iis 7.5// скрипт даже страницу нормально не генерит.
Скрипт МЕГА зачет! Автору респект! Тут появился такой вопрос: Как настроить текущую дату и время? Дата отображается нормально, а вот время нет.
Самое простое — вставьте в файл bot_stat.php в 5 строку, т.е. перед строкой
$IS_BOT = true;
следующую строку:@date_default_timezone_set('Europe/Moscow');
Вместо «Europe/Moscow» поставьте место, где находится ваш сервер, если он не в Москве.Тогда новые записи будут в правильном времени.
С часами вроде разобрался, вот только разницу в 20 минут никак победить не могу((
Победил… Оказалось косяк был на самом сервере.
Не могу понять что у меня с руками !!! (((
Скипт запускается показывает что ботов 0 уже месяцей 5-6 (бред)
при нажатие на «Панель администратора >>» выходит белый экран по ссылке «http://www.******.ru/bots.php?admin=1» и все !
Это нормально ???
Большое спасибо за ответ !
Здравствуйте! Что делать, если файл .htaccess не поддерживается сервером?
Добрый вечер. Тогда ставьте без него, но это потенциальная брешь в безопасности.
«Скипт запускается показывает что ботов 0 уже месяцей 5-6» — для проверки скрипта воспользуйтесь бесплатной программой Henu home.snafu.de/tilman/xenulink.html она просканирует ваш сайт и отметится на страничке скрипта как бот.
И столько месяцев ждать не надо. А заодно проверит внутренние ссылки сайта.
Скажите пожалуйста, на сколько большие файлы логов получаются при длительном использовании скрипта?
Это зависит от посещаемости ботами, разумеется.
В среднем — приблизительно 120 байт на 1 запись. 1 запись — это запись о посещении ботом одной страницы (сюда не попадают запросы статики и т.д.).
На данном сайте — это примерно 50000-70000 запросов (или 6-10 Мбайт) в год.
Интересный скрипт. Спасибо, скачал, установил.
а куда именно в файл, общий для всех страниц Вашего сайта можно поподробней с примером.
Долго искал нечто подобное и вот наконец-то нашел…
Огромное спасибо!!!
Здравствуйте. Запуская скрипт, не правильно отображается кодировка, и выдаёт множество ошибок, как пример:
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
Это не ошибки, это — notice’ы. Любой скрипт выдает их пачками, если это указано в настройках php.
Чтобы избавиться от них, добавьте строку в начало кода bots.php:
error_reporting(E_ERROR);
Как узнать, всё ли правильно сделано. В данный момент, не видно чтоб, как-то робот нас обходил.
Прверьте, существуют ли файлы bot_stat.log и bot_stat.txt, и права на запись в них для пользователя, под кем работает apache.
Если все верно, натравите гугл на ваш сайт. В интрументах для вебмастера в гугле есть функция «Просмотреть как Googlebot».
Всё сделал, как Вы описали, права даже 777 выдавал, не хочет роботов показывать(
Через гугл несколько раз запросы делал
Убедитесь, что скрипт вообще вызывается, т.е. что в php-код, общий для всех страниц сайта, вставлена строка
php require_once 'bot_stat.php';
Если так и не найдете ошибки, скиньте доступ на admin{a}usings.ru, посмотрю сам.
Могли бы Вы прочесть ЛС на Вашем форуме.
«Что касается вашего пожелания – это запросто. А что посоветуете считать в качестве «сейчас»? Интервал времени минут в 10?»
Думаю 10 минут маловато скорее всего 15-20 минут выставить будет то что нужно.
Если конечно есть время и желание реализовать такую опцию. Очень удобно когда показывает сколько гостей скажем на сайте и сколько ботов. Если имя бота прописано, то это было бы верх мечтаний.
Как установить эту статистику на VDS ? На обычном хостинге все норм работало на VDS не хочет
Не имеет значения, ВДС или нет. Смотрите логи на предмет ошибок.
Добрый день,
попробовал установить скрипт по вашей инструкции, однако столкнулся с проблемой: при входе в скрипт по адресу http://адрес сайта/bots.php выскакивает форма запроса логина и пароля. после ввода логина и пароля ничего не происходит, т.к. опять выскакивает эта же форма. Пробовал как пароль, который ввел самостоятельно в файл bots_settings.php, так и пароль, который был там изначально.
Подскажите, пожалуйста, что я делаю некорректно.
использую хостинг с поддержкой CGI, MySQL, SSI, Perl, PHP, Python, crontab, htaccess, phpMyAdmin;
Заранее благодарю за ответ и помощь
:Добрый день. Логин вводите точный (с маленькой буквы)?
Здравствуйте! Платная версия с поддержкой сбора статистики по нескольким доменам продается? Или по-прежнему только лайт?
К сожалению, пока нет.
Всем привет хороший скрипт,работает нормально уже месяц пока багов не было,подскажите нашол ктонибудь решение как реализовать вывод на странице сайта сколько и каких ботов находится на сайте онлайн.
Это не проблема, напишите простой скрипт, который будет читать первые несколько строк из файла bot_stat.txt.
Вот пример: bot_online.phps
Добрый день! Очень хочеться воспользоваться вашим скрипном, но проблема та же что и у
«Владимир @ 2010-9-19 03:58» при нажатии на «Панель администратора >>» выходит белый экран по ссылке «http://www.******.ru/bots.php?admin=1″ и все !
xenu вообще отказываеться сканировать сайт дальше главной страницы, пока скрипт на сайте. Соответственно и робот яндекса может не пройти!? пришлось временно удалить. xenu снова работает. Буду благодарен решению проблемы. Спасибо.
Что при этом в логах апача?
Да, кстати, а что такое xenu?
Добрый день! Есть ряд предложений по развитию вашего скрипта. Считаю, что однозначно нужна платная расширенная версия. Готов обсудить в скайпе. Свяжитесь со мной. Также готов оказать свою финансовую поддержку.
Приветствую, за скрипт огромное спасибо.
Возникла следующая проблема: Время посещения бота отличается от текущего времени по Москве на 4 часа. Тоесть в Москве 13.00, а отображается 9.00
Подскажите как исправить.
С уважением, Виталий.
В комментариях тут уже был такой вопрос. Вот, что я тогда ответил:
Добрый день.
Скрипт предложенный Вами отличается от скрипта расположенного на вашем сайте, готов купить более расширенную версию.
Но интересует еще очистка лога от записей через крон команду в назначенное время.
Здравствуйте! Уже несколько лет пользую данный скрипт. Столкнулся с такой проблемой, что периодически обнуляется bot_stat.txt. В чем может быть проблема?
Добрый день. Понятия не имею. Никогда такого не наблюдалось.
Здравствуйте!
В админке отображается следующая ошибка, как вылечить ?
Текущие дата и время:
Warning: date() [function.date]: It is not safe to rely on the system’s timezone settings. You are *required* to use the date.timezone setting or the date_default_timezone_set() function. In case you used any of those methods and you are still getting this warning, you most likely misspelled the timezone identifier. We selected ‘Europe/Moscow’ for ‘MSK/4.0/no DST’ instead in /home/cp251618/public_html/***.ru/bots.php on line 514
2014-05-13, 11:59:15
Добрый день. Добавьте в начало тела скрипта (после тэга <?php) строки:
error_reporting(E_ERROR);
ini_set('display_errors', 1);
Ранее этот скрипт работал отлично, но сейчас почему то не выводит ботов. Хотя точно знаю что они заходили (через Яндекс проверку). Что может быть?
Заработало, подключив инклудом: {include file=»bot_stat.php»}
Супер скрипт!! А можно как-то сделать, чтобы показывал скрипт и всех пользователей зашедших??
Можно, конечно. Но чем это будет отличаться от логов того же апача?
У вас скрипт сломался. Ошибка об отсутствии функции отображается.
Действительно. Спасибо, исправлено.