Смотря что будете отдавать заблокированному IP. Если страницу ошибки а ля 403... "Извиняйте... Бла-бла-бла..." - это одно, если строку из 3-4 символов (403, Ban, Deny) без всяких страниц (через ErrorDocument в .htaccess) - это другое.
Давно написал себе php-скрипт, который блокирует (или наоборот разрешает - Google, Yandex боты) по IP, проверяя по разным условиям (количество обращений в минуту, за 5 минут; слова "bot" и т.д. в User-Agent; маскировка под боты Google, Yandex). При блокировке IP записывается в .htaccess, отдается код 403 и строка "Ban".
Ловите (Googlebot отсюда не ходит, только уроды):
Order Deny,Allow ### ARIN - GOOGL-2 - GOOGLE-CLOUD - .googleusercontent.com ### Deny from 8.34.208.0/20 Deny from 8.35.192.0/20 Deny from 23.236.48.0/20 Deny from 23.251.128.0/19 Deny from 34.64.0.0/10 Deny from 35.184.0.0/13 Deny from 35.192.0.0/11 Deny from 35.224.0.0/12 Deny from 35.240.0.0/13 Deny from 104.154.0.0/15 Deny from 104.196.0.0/14 Deny from 107.167.160.0/19 Deny from 107.178.192.0/18 Deny from 108.59.80.0/20 Deny from 130.211.0.0/16 Deny from 146.148.0.0/17 Deny from 162.216.148.0/22 Deny from 162.222.176.0/21 Deny from 173.255.112.0/20 Deny from 192.158.28.0/22 Deny from 199.192.112.0/22 Deny from 199.223.232.0/21
Код скрипта здесь можете выложить?
Можно ограничиться только ручной проверкой IP при публикации объявления:
- Если адрес принадлежит Интернет-провайдеру, объявление оставить и сохранить информацию (IP и точное время).
- Если IP принадлежит хостинг-провайдеру, то всю сеть заблокировать (или хотя бы закрыть доступ из сети к странице регистрации), а объявление удалить. Таким образом отсеятся те, кого невозможно вычислить по реальному IP.
Также закрыть страницу регистрации для тех зон, откуда объявления никто подавать не будет (APNIC, AfriNIC, LACNIC, ARIN).
Обязательное указание мобильного телефона с его верификацией. Не панацея, если SIM-карта левая, но хоть какие-то следы останутся.
Проверять на $_SERVER['HTTP_X_FORWARDED_FOR'] и прочие переменные. Тоже не панацея, но лучше, чем ничего.
Тех, кто пользуется VPN, можно еще вручную отсеивать (если не лень): определить, кому принадлежит IP, если хостеру, а не Интернет-провайдеру, то удалить объявление. Но лучше сразу блокировать доступ к сайту с IP-диапазонов хостеров. Начать с крупнейших: Amazon, OVH, DigitalOcean, Hetzner, LeaseWeb и т.д. Так отсеятся VPN и прочие сервисы.
По /8 октету заблокируйте ГЛОБАЛЬНО все диапазоны, кроме ARIN. Никто, кроме посетителей из Северной Америки, не зайдет. Правда, в смешанных зонах (Administered by ARIN) будут попадаться IP-блоки других стран, но их глобально не так много.
SetEnvIf Remote_Addr ^(?:[347-9]|1[3568]|ПЕРЕЧИСЛЯЕТЕ_ВСЕ_ДИАПАЗОНЫ_ARIN)(?:\.\d{1,3}){3}$ arin Order Deny,Allow Deny from env=!arin
Выбирайте все зоны ARIN и Administered by ARIN (первый 0 удалите). Зоны смотрите здесь: http://www.iana.org/assignments/ipv4-address-space/ipv4-address-space.xml
А знание правил грамматики и орфографии русского языка (хотя бы на хорошем уровне) для этого уже не требуется?
GOOGLE - 172.217.0.0/16
RewriteCond %{THE_REQUEST} ^(?>[A-Z]{3,9})\ /action=yith-woocompare-add-product&id=\d+\ HTTP/ RewriteRule ^.*$ - [F]
Закройте доступ по FTP всем IP, кроме своих. А лучше используйте SFTP и авторизацию по ключу.