Сегодня в 14:36:08 по форме связи с администрацией пришло сообщение:
Цитата:Добрый день!
В общем, зарегистрировался на форуме, но так в течение 10 минут и не дождался активации на почту ***@mail.ru.
А вопрос в следующем:
Очень понравился ваш черный список IP адресов.
Скажите, как мне тоже такой сделать на сайте (разрабатываю проект). Основные задачи: блокировать те IP, с которых хотят скачать весь сайт; блокировать ботов, которые частотно бродят по сайту; При этом, не блокировать поисковых!
______________________
С уважением, Максим
Отвечаю:
На данный момент наш черный список IP адресов автоматически не пополняется (до сих пор никак не допишу
), а добавляется вручную после просмотра логов.
На данный момент могу сказать, как это планируется реализовать:
1) Определяем, что это не поисковая система:
PHP код:
if (strstr($_SERVER['HTTP_USER_AGENT'], 'YandexBot')) {$bot='YandexBot';}
elseif (strstr($_SERVER['HTTP_USER_AGENT'], 'Googlebot')) {$bot='Googlebot';}
else { $bot=$_SERVER['HTTP_USER_AGENT']; }
2) При каждом переходе, в MySQL пишем время посещения странички и IP адрес того, кто переходит.
3) При переходе на какую-либо страничку делаем запрос в MySQL (
SELECT count(id) FROM имя_таблицы WHERE ip=ip_того_кто_переходит AND time>текущее время-10 сек LIMIT 1), для того чтобы узнать сколько переходов было совершено с данного IP за указанный промежуток времени.
4) Если количество переходов превысило допустимый порог за указанный промежуток времени, то баним через
.htaccess -
Как заблокировать доступ к сайту по IP (добавляем в список IP).
Как то так.
P.S. Вашу регистрацию на форуме активировал вручную. Проверил, на @mail.ru письма действительно не доходят