Поиск ботов посещающих WordPress

Как вычислить ботов, которые посещают ваш WordPress сайт 3

В примере ниже будет рассмотрен вариант именно для WordPress, хотя подобный метод подойдёт для любого сайта.

Часто на хостингах можно столкнуться с непомерной нагрузкой которую создаёт сайт, хотя Яндекс Метрика упорно показывает 100 чел в сутки, AwStats датё объёмную информацию, но о количестве заходов с каждого IP информацию не предоставляет(хотя косвенно можно понять частоту по объему трафика).

Итак, задача, понять как часто и какие IP ходят на ваш сайт под управлением WordPress, что бы в дальнейшем заблокировать IP адреса создающие большую нагрузку на сайт. Блокировка предполагается по суммарному количеству запросов в интервале времени.

Для этого понадобится таблица куда будем сохранять данные, её код CREATE ниже:

Делаем поле ip уникальным, что бы обновлять и вставлять запись за один MySQL запрос. Ниже код вставки нужных значений в БД:

В целом код выше, прокомментирован, пояснить стоит лишь:

Суть такова, когда при вставке записи обнаруживается ошибка о дубликате нашего уникального ключа (ip адрес), то MySQL без лишних вопросов обновляет данные

  • cnt возьмётся из бд и увеличивается на +1
  • Остальные данные берутся из запроса INSERT VALUES, о чём свидетельствует конструкция вида «имя_поля=VALUES(имя_поля)»
  • Минусом в таком запросе (для эстетов) будет то что id авто инкремента будет не по порядку(пример на скриншоте ниже)

И так, пока писался этот материал у нас получилась такая статистика по запросам и IP

поиск ботов на сайте
Поиск ботов на сайте

Статья писалась в течении 5-и минут и за это время набежала некоторая статистика, получается что некоторые адреса ходят на сайт слишком часто. Возможно это парсеры или сума сошедшие сервисы. В любом случае для полной картины оперировать только этими данными нельзя, но определённая картинка о «ходящих на сайт» складывается.

Код можно повесить на какой нибудь хук (например хук init), но в нашем случае необходимо было сделать это до загрузки функционала WordPress и код был добавлен в файл wp-load.php

Помните, добавлять что либо в файлы ядра не самая лучшая затея и вы должны понимать.

3 Comments

  1. «Ниже код вставки нужных значений в БД:»
    Не в БД, думаю, а в какой-то файл. В какой? function.php, index.php?

    1. дочитал, вопрос снят, спасибо)

      1. Эту же статью мы публиковали на Хабре, там есть большое количество комментариев.

Добавить комментарий для Coderun Отменить ответ

Ваш адрес email не будет опубликован. Обязательные поля помечены *