PHP: Различия между человеческим пользователем и ботом / другим

Я хочу, используя PHP, различать фактического человека и бота. В настоящее время я отслеживаю просмотры страниц, и они сильно раздуты из-за того, что боты просматривают мои страницы, поэтому я хочу только записывать реальных людей. Неважно, если бы он не был на 100% точным, мне просто нужен простой способ сделать это через PHP.

Чтобы быть ясным, это не для аналитики как таковой; это так, что я могу отслеживать, какие изображения ежедневно подаются, поэтому я могу создать сценарий «Лучшие изображения дня».

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

Паук Google, например.

Во-первых, очевидно: проверьте агент пользователя.

Я использую другой трюк, который работает очень хорошо. Я сопоставляю файл robots.txt с файлом PHP и регистрирую IP в базе данных. Затем, когда вы регистрируете активность пользователя, я удостоверяюсь, что они не принадлежат одному из этих зарегистрированных IP-адресов. Если пользователь аутентифицируется через систему входа, я отслеживаю их независимо.

Разумеется, ни одно решение не гарантирует точности, но для общего ведения журнала этого было достаточно для моих целей.

Я не уверен, что PHP является лучшим решением для такого рода проблем.
Вы можете прочитать Как блокировать плохих ботов и как блокировать спам-боты, запрещать шпионы и сообщать нежелательным роботам, чтобы они отправились в ад, чтобы увидеть больше решений о блокировании ботов, но на этот раз с apache.

Apache будет действовать быстрее, требуя меньше CPU для выполнения этой задачи, чем программа php.