У нас есть похожий вариант использования для вас, и один вариант, который мы недавно нашли весьма полезным, - это класс UASParser из user-agent-string.info .
Это класс PHP, который извлекает последний набор определений строк пользовательского агента и кэширует их локально. Класс может быть настроен на получение определений так часто или так редко, как вы считаете нужным. Автоматическая загрузка их таким образом означает, что вам не нужно следить за различными изменениями в пользовательских агентах ботов или новых, появляющихся на рынке, хотя вы полагаетесь на UAS.info, чтобы делать это точно.
Когда класс вызывается, он анализирует пользовательский агент текущего посетителя и возвращает ассоциативный массив, разделяющий составные части, например,
Array
(
[typ] => browser
[ua_family] => Firefox
[ua_name] => Firefox 3.0.8
[ua_url] => http://www.mozilla.org/products/firefox/
[ua_company] => Mozilla Foundation
........
[os_company] => Microsoft Corporation.
[os_company_url] => http://www.microsoft.com/
[os_icon] => windowsxp.png
)
Поле typ
устанавливается на browser
, когда UA определен как вероятный, принадлежащий посетителю, и в этом случае вы можете обновить свою статистику.
Несколько предостережений здесь:
- Вы полагаетесь на UAS.info, чтобы строки агента пользователя были точными и актуальными
- Боты, такие как google и yahoo, объявляют себя в строках своего пользовательского агента, но этот метод все равно будет подсчитывать посещения от ботов, притворяющихся посетителями-людьми (отправляя поддельных UA)
- Как указано выше @ amdfan , блокировка ботов с помощью robots.txt должна остановить доступ большинства из них к вашей странице. Если вам нужно индексировать контент, но не увеличивать его статистику, то метод robots.txt не будет реалистичным вариантом