Неугодные IP-адреса можно забанить не только по отдельности, используя файл .htaccess и онлайновый генератор кода, но и списком, причем этот список вы можете регулярно обновлять через FTP.
Спаммеры иногда настолько достают, что я решаюсь на бан целых подсетей, с которых идет спам. Поискав в интернете информацию, как сделать это наиболее просто и без ошибок, нашел один простой, но весьма действенный метод. Всего-то и нужно, что вставить код в шаблон вашей темы.
<?php $file = array_map('trim', file('ban.txt')); #берем данные из файла foreach ($file as $expression) { $expression = str_replace('.', '.', $expression); $expression = str_replace('*', '(.*)', $expression); if (preg_match('#' . $expression . '#', $_SERVER['REMOTE_ADDR'])) #проверяем IP { header('HTTP/1.1 403 Forbidden'); #отправляем в ответ заголовок 403 die("<title>BANNED</title>rnrn<h1>You Are Banned! / Доступ к сайту для Вас заблокирован.</h1>"); #передаем привет } } ?>
Смекнули, что ban.txt — это обычный текстовый файл, котрый содержит простой список IP-адресов? Вот примерно такой:
188.92.76.233 94.45.*.96 94.45.166.*
Заметили * в адресах. Вот именно так и банятся целые подсети спаммеров. Например, 94.45.166.* означает, что будут забанены адреса с 94.45.166.0 до 94.45.166.255.
Почему бы этот код просто не добавить в header.php в самое начало? Довольно удобно сидеть дома и постепенно накапливать базу IP адресов спаммеров, периодически ее просто обновляя и закидывая в блог через FTP.

А есть разница в каком месте кода шаблона будет находиться этот код?
Лучше вставлять в header.php до строчки body.
А не легче ли обновлять “Параметры => Обсуждение => Черный список” вместо того, чтобы вставлять коды и грузить по FTP?
С помощью FTP можно автоматизировать процесс обновления черного списка (например, синхронизация по расписанию).
Тиарус, проблема в том, что меня замучил спам с одной подесети. Конечно Акисмет весь его метит, но гордо мне сообщает, что в очереди стоит 200 спам комментариев и приходится их проверять. Про тот черный список, что я тебе написал – он не работает. То есть все комментарии с того IP заносятся в очередь, но я вообще не хочу их видеть.
Я только сейчас понял, что ты предлагаешь бан подсететей – то есть с конкретного IP вообще нельзя будет написать? Я правильно понимаю?
Данный код не работает. Его вставка в шаблон вызывает появление страницы ошибки с текстом: “Parse error: syntax error, unexpected ‘=’ in /home/asjudc/vizualdata.ru/wp-content/themes/grey-matter/header.php on line 39”.
Воспользуйтесь способом, описанном в посте Как забанить неугодные IP | .HTACCESS Banning Generator: https://n-wp.ru/kak-zabanit-neugodnyie-ip-htaccess-banning-generator/