Whois Ban

amxx Whois Ban 2.0

Нет прав для скачивания
Автор
Совместимость с
Amx Mod X 1.9.0, Amx Mod X 1.10.0 dev
Благодарности
Пользователю juice за плагин Proxy/VPN check
В виду большого количества тем и явной потребности в подобной системе, выкладываю свою наработку.

Что делает плагин ?

Через стандартный модуль sockets, он обращается на API сайта http://ip-api.com/ для получения Whois данных. К сожалению, альтернативных сайтов практически нет, т.к. все перешли на https, а предлагаемый AMX модуль такое не поддерживает (правда есть сторонние решения в виде модуля Curl, но об этом в другой раз).

Сайт ip-api.com имеет ряд ограничений на бесплатном тарифе (регистрация не требуется), по этому в плагине встроено кеширование, чтобы он по дружески относился к вашему серверу и сайту.

Что можно получить через Whois данные ?

В нашем случае, мы можем получить самое главное - это AS провайдера (вики), с которого заходит игрок. Проще говоря, нам не нужно определять диапазоны IP адресов и заниматься подобной дичью, а можем выдавать бан сразу по AS, отрубив всего провайдера целиком.

Подобную идею реализовал Lev и своем плагине СубнетБан, в виде отдельного амх модуля, но та разработка реально старая, а модуль на новых билдах серверов (в частности на линуксе), толком не работает.

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

Как это работает ?

При получении данных с Whois через Api, плагин их кеширует и сверяется со списком из файла whois_banlist.ini
Если AS игрока совпадает, он кикается.
В сам файли я уже добавил несколько AS хостингов и дата-центров.
Я предлагаю продолжить тему и публиковать IP адреса AS провайдеров игроков, которые играют через прокси. Я, по мере возможности, буду их добавлять и обновлять список.

Что такое Whois данные и что с ними делать ?

Самый простой способ получения Whois данных и AS по IP адресу здесь: https://2ip.ru/whois/
Отличить хостинг/дата-центр от домашнего провайдера достаточно легко. Многие указывают в данных слова Hosting, vds, и т.д.
Так же, практически всегда есть почта, которая и является сайтом провайдера или название фирмы, которое легко гуглится. С хостингов и дата-центров обычные игроки не заходят.

Минимальные требования: Amxmdox 1.8.3 и выше с поддержкой SOCK_NON_BLOCKING

Дополнительно:


В плагин добавлено логгирование, в тех случаях, когда не удается получить ответ от сайта или определить AS. Это бывает редко и я грешу на сам модуль sockets, т.к. тот же Curl справляется с более сложными задачами без проблем.


В версии 2.0 добавлено:

1. Проверка на наличие Proxy с сайта: http://proxy.mind-media.com/block/
2. Введены настройки в тело файла whois_banlist.ini

Прогнал через сайт proxy.mind-media.com около 12 тысяч IP адресов реальных игроков. Из них около ~300 определились как Прокси, что свидетельствует об относительно большом проценте не нужных срабатываний. Очевидно, что туда попадают IP домашних провайдеров за рассылку спама и даже IP от яндекса там числятся как Proxy.

Короче сервис такой, на свой страх и риск, по этому по умолчанию он отключен. Так же, я постарался минимизировать ложные проверки, внедрив чек порта игрока на дефолтный 27005, ибо с прокси такого порта у игрока быть не должно.
Автор
SISA
Скачиваний
107
Просмотры
3K
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок
Сверху Снизу