Иконка ресурса

amxx SubnetBan 2.2

Нет прав для скачивания
Автор
Lev
Совместимость с
Amx Mod X 1.8.2, Amx Mod X 1.9.0
Мультиязычность
RU, EN
Требования
  • модуль Whois: whois_amxx.dll (Windows) / whois_amxx_i386.so (Linux) должен быть установлен
  • модуль GeoIpMax: geoipmax_amxx.dll (Windows) / geoipmax_amxx_i386.so (Linux) должен быть установлен (или запретите использование модуля с помощью опции компиляции)
  • для корректной работы запросов к базам Whois, для игрового сервера должны быть разрешены исходящие подключения TCP на порт 43 и работающий DNS клиент
  • если вы желаете использовать GeoIp, то вам надо скачать базу GeoLiteCity и скопировать её в папку "addons\amxmodx\data\"
  • возраст пользователя 18+ или наличие технического образования
  • автоматическое определение подсети/автономной системы для заданного ИП с помощью баз GeoIP и Whois
  • хранение банов подсетей/автономных систем в ini файле или в mysql базе (для подсетей и автономных систем используются раздельные файлы)
  • сохраняет резервную копию ini файла при разбане подсети/автономной системы
  • хранит следующую информацию о бане подсети/автономной системы:
    • начальный адрес подсети
    • конечный адрес подсети
    • номер автономной системы
    • разрешенные клиенты (флаги)
    • дата бана
    • последняя дата блокировки подключения из этой подсети/автономной системы
    • причина бана
  • АМХХ логгирование использования команд
  • по умолчанию используется флаг доступа 'n' к командам плагина (можете поменять в файле cmdaccess.ini)
  • показывает всем игрокам уведомление о вновь подключившемся игроке (выводится страна)
  • интеграция с dproto, при подключении игрока, если его ИП попадает в забаненную подсеть, то:
    • проверяется тип клиента используемого игроком и, если этот тип разрешен для данной подсети, то пускает клиента,
    • иначе игроку сообщается о типе разрешенных клиентов и линк на скачку клиента.
  • можете использовать этот плагин и без dproto, если желаете
  • автоматическое создание базы данных и(или) таблиц (требуются достаточные права mysql юзера).
  • Для редактирования банов, возможно использование программы под Windows. Автор Infernal. Требует .NET для работы.
Для конвертации базы в файл можно использовать следующий скрипт и реджексы (флаги клиентов заменяются на указанные в скрипте)
SELECT INET_NTOA(`startip`),INET_NTOA(`endip`),'bd',FROM_UNIXTIME(`datetimebanned`),FROM_UNIXTIME(`datetimelastblocked`),`reason` FROM `subnetbans`
(.*?) [\s]*(.*?) [\s]*(.*?) [\s]*(.*? [\s]*.*?) [\s]*(.*? [\s]*.*?) [\s]*(.*)
Для конвертации из файла в базу (учтено до 5 флагов клиентов)
(.*?) [\s]*(.*?) [\s]*(.*?) "[\s]*(.*? [\s]*.*?)" "[\s]*(.*? [\s]*.*?)" "[\s]*(.*)"
INSERT INTO `subnetbans2` (`startip`, `endip`, `allowedclients`, `datetimebanned`, `datetimelastblocked`, `reason`) VALUES (INET_ATON('\1'), INET_ATON('\2'), (1<<(CASE WHEN CHAR_LENGTH('\3')>0 THEN (ASCII(SUBSTR('\3',1)) - 97) ELSE 0 END))|(1<<(CASE WHEN CHAR_LENGTH('\3')>1 THEN (ASCII(SUBSTR('\3',2)) - 97) ELSE 0 END))|(1<<(CASE WHEN CHAR_LENGTH('\3')>2 THEN (ASCII(SUBSTR('\3',3)) - 97) ELSE 0 END))|(1<<(CASE WHEN CHAR_LENGTH('\3')>3 THEN (ASCII(SUBSTR('\3',4)) - 97) ELSE 0 END))|(1<<(CASE WHEN CHAR_LENGTH('\3')>4 THEN (ASCII(SUBSTR('\3',5)) - 97) ELSE 0 END)), UNIX_TIMESTAMP('\4'), UNIX_TIMESTAMP('\5'), '\6')
Форматы использования команд:
sb_ban:

  • <стимИД | ник | ИД игрока | ИП | номер автономной системы> [разрешенные клиенты (флаги)] [причина]
  • <start ИП> <конечный ИП> [разрешенные клиенты (флаги)] [причина]
  • <подсеть в CIDR формате> [разрешенные клиенты (флаги)] [причина]
sb_unban:
  • <ИП> [ограничение (по умолчанию 1)]
  • <начальный ИП> <конечный ИП> [точное совпадение (по умолчанию 1)]
  • <подсеть в CIDR формате> [точное совпадение (по умолчанию 1)]
  • <номер автономной системы>
sb_list:
  • <ИП> [ограничение (по умолчанию 0)]
  • <начальный ИП> <конечный ИП> [точное совпадение (по умолчанию 0)]
  • <подсеть в CIDR формате> [точное совпадение (по умолчанию 0)]
  • <номер автономной системы>
sb_search:
  • <подстрока причины>
sb_whois:
  • <стимИД | ник | ИД игрока | ИП>
sb_stat:
  • [номер страницы (по умолчанию 1)]

Значения параметров:

<> - обязательный параметр
[] - необязательный параметр
стимИД - "STEAM_0:x:xxxxxxxx", будет осуществлен поиск игрока с указанным стимИД
ник - "pl", будет осуществлен поиск игрока с ником содержащим указанную строку
user ID - #245, будет осуществлен поиск игрока c указанным идентификатором
ИП - "1.2.3.4", одиночный адрес будет использован для определения подсети
номер автономной системы - "AS12345", будет для бана/разбана/вывода указанной автономной системы
подсеть в CIDR формате - "1.2.3.4/16", будет использована указанная подсеть
начальный ИП - "1.2.3.4", начальная граница подсети, должен быть так же указан конечный ИП
конечный ИП - "1.2.3.4", конечная граница подсети, должен быть так же указан начальный ИП
разрешенные клиенты (флаги) - "abcdefghij", типы клиентов на которые не будет распространяться этот бан подсети
причина - "Eta podset' v bane!", ваш текст для вывода забаненым игрокам (наряду с остальной информацией о бане)
точное совпадение - 0 или 1, этот параметр используется только когда указана подсеть
0 - все подсети пересекающиеся с указанной будут обработаны
1 - только точно совпадающая подсеть будет обработана​
ограничение - 0 или 1, этот параметр используется только если был указан одиночный ИП
0 - все подсети включающие указанный ИП будут обработаны
1 - только первая, самая маленькая, подсеть, включающая указанный ИП, будет обработана​

Разрешенные клиенты (флаги): (основаны на авторизации dproto)

a - dproto (клиент без эмулятора или с неизвестным типом эмулятора)
b - Native Steam (лицензионный клиент)
c - SteamEmu
d - RevEmu
e - Old RevEmu
f - HLTV
g - SteamClient2009
h - AVSMP
i - sXe Injected
j - RevEmu 2013
k - SmartSteamEmu3​

Замечания:
при указании в качестве параметра команды sb_ban стимИД, ника или идентификатора игрока, производится поиск среди игроков на сервере, и:
  • если будет найдено несколько подходящих игроков, процесс бана отменяется;
  • если будет найден один игрок, его ИП будет использован для автоматического определения подсети/автономной системы и эта подсеть/автономная система будет забанена.
в текущей версии практически безупречно производится автоматическое определение подсети/автономной системы, так что использование этой возможности для бана по номеру автономной системы рекомендовано.
Сокращенные формы записи:
Первый нолик - укороченная до предела форма записи ИП (опущенные октеты подразумеваются в 0):
1.2.3.4
1.2.3. = 1.2.3.0
1.2.3 = 1.2.3.0
1.2. = 1.2.0.0
1. = 1.0.0.0
1 = 1.0.0.0
Второй нолик - количество битов подсети (CIDR форма записи).


Пример бана:
  1. Определить подсеть - это непростая задача (точнее просто долгая).
  2. Надо идти на whois сервера и искать.
  3. Например ИП: 93.177.138.147
  4. Идем на http://www.db.ripe.net/whois, вбиваем его там.
  5. Получаем:
    inetnum: 93.177.128.0 - 93.177.159.255
    Это и есть подсеть, в первом приближении. Потому что у этого провайдера это может быть не единственная подсеть.
  6. Смотрим ниже (в самом низу, где самые узкие подсети выводятся):
    % Information related to '93.177.128.0/19AS28751'
  7. Это так называемый номер автономной системы. В данном случае это AS28751.
  8. Идем на RipeNCC
  9. И вбиваем его туда.
  10. Получаем список подсетей этого провайдера (опять же грубо говоря).
  11. Из этого списка надо отобрать те, что могут быть из того же города и т.п. (а можно просто все забанить). Это уже тебе решать.

Плюс ко всему, ripe отвечает только за Европу. Для других континентов есть другие регистраторы, и соответственно whois сервера.


Q: Как забанить диапазон айпишников?
A: sb_ban 12.12.10.0 12.12.45.255 "bjk" "Cheater"

Q: Как разбанить айпишник?
A: sb_unban 12.12.10.10

Q: Как вывести все баны подсетей?
A: sb_list 0/0
Команды
  • sb_help показывает помощь по использованию других команд
  • sb_ban добавляет бан подсети/автономной системы по: игроку (используется его ИП для автоматического определения подсети/автономной системы), ИП (используется для автоматического определения подсети/автономной системы), начальному и конечному ИП, подсети в CIDR формате или номеру автономной системы
  • sb_unban удаляет бан подсети/автономной системы по: ИП (удалит одну, самую меньшую, или все подсети содержащие этот ИП), начальному и конечному ИП (удалит точно совпадающую или все пересекающие подсети) или номеру автономной системы
  • sb_list вывод списка подсетей/автономных систем по: ИП (выведет одну, самую меньшую, или все подсети содержащие этот ИП), начальному и конечному ИП (выведет точно совпадающую или все пересекающие подсети) или номеру автономной системы
  • sb_search вывод подсетей содержащих в причине заданную подстроку
  • sb_whois запрос к базе Whois по заданному ИП или ИП игрока с выводом ответа в консоль
  • sb_stat выводит список игроков на сервере с информацией: номер игрока, ник, ИП, номер автономной системы, используемая версия протокола, протокол авторизации (тип используемого клиента), страна, город, дополнительное описание маршрута из базы Whois
Автор
Tranquillity
Скачиваний
116
Просмотры
3K
Первый выпуск
Обновление
Оценка
0.00 звёзд 0 оценок

Другие ресурсы пользователя Tranquillity

Сверху Снизу