Русское сообщество по скриптингу

Subnetban (бан подсетей)

Утвержденные плагины для AMX Mod X администратором/модератором форума.

Модератор: Leonidddd

Правила форума
1. Запрещено материться и оскорблять других участников форума.
2. Запрещен флуд, оффтоп, дабл постинг во всех разделах форума, кроме раздела "Болтовня".
3. Запрещено взламывать сайт/форум или наносить любой вред проекту.
4. Запрещено рекламировать другие ресурсы.
5. Запрещено создавать темы без информативного названия. Название темы должно отображать ее смысл.

В данном разделе форума разрешено создавать темы, касающие только работоспособных плагинов для AMX Mod X. Новые плагины нужно выкладывать в разделе "Новые плагины".

Subnetban (бан подсетей)

Сообщение KORD_12.7 » 27 сен 2011, 09:43

SubnetBan

Автор: Lev
Версия: 2.2

Вы должны зарегистрироваться, чтобы видеть ссылки.

Информация:
  • автоматическое определение подсети/автономной системы для заданного ИП с помощью баз GeoIP и Whois
  • хранение банов подсетей/автономных систем в ini файле или в mysql базе (для подсетей и автономных систем используются раздельные файлы)
  • сохраняет резервную копию ini файла при разбане подсети/автономной системы
  • хранит следующую информацию о бане подсети/автономной системы:
    • начальный адрес подсети
    • конечный адрес подсети
    • номер автономной системы
    • разрешенные клиенты (флаги)
    • дата бана
    • последняя дата блокировки подключения из этой подсети/автономной системы
    • причина бана
  • АМХХ логгирование использования команд
  • по умолчанию используется флаг доступа 'n' к командам плагина (можете поменять в файле cmdaccess.ini)
  • показывает всем игрокам уведомление о вновь подключившемся игроке (выводится страна)
  • интеграция с dproto, при подключении игрока, если его ИП попадает в забаненную подсеть, то:
    • проверяется тип клиента используемого игроком и, если этот тип разрешен для данной подсети, то пускает клиента,
    • иначе игроку сообщается о типе разрешенных клиентов и линк на скачку клиента.
  • можете использовать этот плагин и без dproto, если желаете
  • автоматическое создание базы данных и(или) таблиц (требуются достаточные права mysql юзера).
  • Для редактирования банов, возможно использование программы под Windows. Автор Infernal. Требует .NET для работы.
Команды:
sb_help показывает помощь по использованию других команд
sb_ban добавляет бан подсети/автономной системы по: игроку (используется его ИП для автоматического определения подсети/автономной системы), ИП (используется для автоматического определения подсети/автономной системы), начальному и конечному ИП, подсети в CIDR формате или номеру автономной системы
sb_unban удаляет бан подсети/автономной системы по: ИП (удалит одну, самую меньшую, или все подсети содержащие этот ИП), начальному и конечному ИП (удалит точно совпадающую или все пересекающие подсети) или номеру автономной системы
sb_list вывод списка подсетей/автономных систем по: ИП (выведет одну, самую меньшую, или все подсети содержащие этот ИП), начальному и конечному ИП (выведет точно совпадающую или все пересекающие подсети) или номеру автономной системы
sb_search вывод подсетей содержащих в причине заданную подстроку
sb_whois запрос к базе Whois по заданному ИП или ИП игрока с выводом ответа в консоль
sb_stat выводит список игроков на сервере с информацией: номер игрока, ник, ИП, номер автономной системы, используемая версия протокола, протокол авторизации (тип используемого клиента), страна, город, дополнительное описание маршрута из базы Whois

Квары:
sb_sql_host "127.0.0.1" // Сервер MySql
sb_sql_user "root" // Логин к базе
sb_sql_pass "" // Пароль к базе
sb_sql_db "subnetbans" // Название базы
sb_sql_create_db "0" // Автоматическое создание базы данных и таблиц (значение 2) или только таблиц (значение 1), если они не существуют.

sb_def_ban_as "1" // По умолчанию команда sb_ban при автоматическом определении будет банить: 0 - подсеть, 1 - автономную систему
sb_def_allowed_clients "bjk" // Разрешенные типы клиентов используемые по умолчанию командой sb_ban ("bjk" = Native Steam, RevEmu 2013 и SmartSteamEmu3)
sb_allowed_flags "ab" // Если игрок имеет следующие флаги доступа, то проверка на бан подсети/автономной системы для него не производится
sb_downloadurl "http://aghl.ru/files/patches/updater.exe" // Ссылка на скачивание клиента с эмулятором
sb_download_clienttype "d" // Тип клиента указанного в ссылке на скачивание
sb_announce_connected "1" // Разрешить(1)/Запретить(0) оповещение о вновь подключающихся игроках

Требования:
  • модуль 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+ или наличие технического образования
Компиляция:
  • скопируйте файл "subnetban.sma" в папку "addons\amxmodx\scripting\"
  • скопируйте файлы "common_functions.inc", "ip_functions.inc" и "whois.inc" в папку "addons\amxmodx\scripting\include\"
  • для получения SQL версии раскомментируйте (удалите символы //) строчку содержащюю "#define USING_SQL" в файле "subnetban.sma"
  • для получения INI версии закомментируйте (поставьте символы //) строчку содержащюю "#define USING_SQL" в файле "subnetban.sma"
  • для запрета использования GeoIpMax модуля закомментируйте (поставьте символы //) строчку содержащюю "#define USING_GEOIP" в файле "subnetban.sma"
  • для разрешения использования GeoIpMax модуля раскомментируйте (удалите символы //) строчку содержащюю "#define USING_GEOIP" в файле "subnetban.sma"
  • введите "compile.exe subnetban.sma" (Windows) или "compile.sh subnetban.sma" (Linux) в командной строке (или смотрите тему Вы должны зарегистрироваться, чтобы видеть ссылки.)
  • скомпилированный плагин (subnetban.amxx) будет находиться в папке "addons\amxmodx\scripting\compiled\"
  • рекомендуется переименовать файл с SQL версией в subnetban_sql.amxx
Установка:
  • скопируйте файл "subnetban.txt" в папку "addons\amxmodx\data\lang\";
  • для INI версии:
    • скопируйте файл "subnetban.amxx" в папку "addons\amxmodx\plugins\";
    • добавьте строчку "subnetban.amxx" в файл "addons\amxmodx\config\plugins.ini";
  • для SQL версии:
    • скопируйте файл "subnetban_sql.amxx" в папку "addons\amxmodx\plugins\";
    • добавьте строчку "subnetban_sql.amxx" в файл "addons\amxmodx\config\plugins.ini";
    • создайте базу MySql используя приведенный ниже скрипт;
    • установите значения кваров для доступа к базе данных в конфиг файле (например в server.cfg);
  • скопируйте "whois_amxx.dll" (Windows) или "whois_amxx_i386.so" (Linux) в папку "addons\amxmodx\modules\";
  • скопируйте "geoipmax_amxx.dll" (Windows) или "geoipmax_amxx_i386.so" (Linux) в папку "addons\amxmodx\modules\";
  • скачайте GeoLiteCity базу по ссылке Вы должны зарегистрироваться, чтобы видеть ссылки. и распакуйте её в папку "addons\amxmodx\data\";
  • также можете обновить базу GeoLiteCountry, скачайте её по ссылке Вы должны зарегистрироваться, чтобы видеть ссылки. и распакуйте её в папку "addons\amxmodx\data\";
  • звук buttons\bell1.wav используется для оповещения о подключившемся игроке, так что проверьте что он есть в папке "valve\sounds\buttons\" на сервере.
Скрипт для создания базы данных:

Код: Выделить всё
CREATE DATABASE IF NOT EXISTS `subnetbans` DEFAULT CHARACTER SET utf8 COLLATE utf8_general_ci;
CREATE TABLE IF NOT EXISTS `subnetbans`.`subnetbans` (
   `id` INT UNSIGNED NOT NULL AUTO_INCREMENT,
   `startip` INT UNSIGNED NOT NULL,
   `endip` INT UNSIGNED NOT NULL,
   `allowedclients` SMALLINT UNSIGNED NOT NULL,
   `datetimebanned` INT UNSIGNED NOT NULL,
   `datetimelastblocked` INT UNSIGNED NOT NULL,
   `reason` VARCHAR( 64 ) NOT NULL ,
   PRIMARY KEY ( `id` ) ,
   UNIQUE `startip_endip` ( `startip`, `endip` ),
   INDEX `startip` ( `startip` ),
   INDEX `endip` ( `endip` )
);
CREATE TABLE IF NOT EXISTS `subnetbans`.`asbans` (
   `asnumber` VARCHAR(10) NOT NULL,
   `allowedclients` SMALLINT UNSIGNED NOT NULL,
   `datetimebanned` INT UNSIGNED NOT NULL,
   `datetimelastblocked` INT UNSIGNED NOT NULL,
   `reason` VARCHAR( 64 ) NOT NULL ,
   UNIQUE `asnumber_ux` (`asnumber`)
);

История версий:

0.6a [2009.10.28]
Alpha версия.
0.7a [2009.11.17]
+ Добавлено: INI версия.
0.8a [2009.11.18]
+ Добавлено: сохранение причины бана.
0.9a [2009.11.20]
+ Добавлено: команда sb_whois.
+ Добавлено: команда sb_stat.
+ Добавлено: логгирование использования команд.
1.0a [2009.11.20]
+ Добавлено: оповещение о подключившемся игроке.
+ Добавлено: сохранение даты бана и даты последней блокировки подключения из подсети.
1.0b [2009.11.21]
Beta версия.
1.0b [2009.11.21]
+ Добавлено: опция компиляции: USING_GEOIP.
1.1b [2009.12.22]
! Исправлено: блокировка бана при sb_use_whois 0.
+ Добавлено: два квара для управления запросами к базам Whois.
1.2b [2009.04.08]
! Исправлено: команда sb_stat теперь корректно обрабатывает новый тип клиента (HLTV) и все будущие типы клиентов.
1.3 [2011.02.15] (35 загрузок)
Release версия.
+ Добавлено: поддержка новых типов клиентов dproto: SC2009 and AVSMP. Рекомендуется обновить базу данных: UPDATE `subnetbans` SET `allowedclients`=202 WHERE `allowedclients`=10
! Исправлено: применение kick к клиенту, если команда disconnect по какой-либо причине не сработала.
! Исправлено: исправление потенциальных ошибок.
! Исправлено: небольшие изменения текстов.
! Изменено: типы клиентов по умолчанию, квар sb_def_allowed_clients, теперь установлен в: "bdgh".
+ Добавлено: новый квар sb_download_clienttype - используется для показа ссылки на скачку, если данный тип клиента разрешен для забаненной подсети.
! Исправлено: парсинг параметров для команды sb_ban (в случае, когда передавался пустой параметр типа клиентов).
+ Добавлено: команда sb_search - поиск по указанной подстроке причины бана. Обновите базу данных: ALTER TABLE `subnetbans` CHANGE `reason` `reason` VARCHAR( 64 ) CHARACTER SET latin COLLATE latin1_general_ci NOT NULL
1.4 [2011.02.23] (100 загрузок)
+ Добавлено: квар sb_sql_create_db - используется для разрешения автоматического создания базы данных / таблицы для банов.
! Исправлено: небольшое изменение текста помощи.
+ Добавлено: русский перевод (UTF8) для subnetban.txt.
! Изменено: название таблицы сменено с subnetban на subnetbans (используйте квар, если надо вернуть обратно).
1.6 [2013.08.12] (5 загрузок)
+ Добавлено: поддержка новых типов клиентов dproto: sXe Injected и RevEmu 2013.
! Изменено: типы клиентов по умолчанию, квар sb_def_allowed_clients, теперь установлен в: "bdghj".
Рекомендуется обновить базу данных: ALTER TABLE `subnetbans` CHANGE `allowedclients` `allowedclients` SMALLINT UNSIGNED NOT NULL; UPDATE `subnetbans` SET `allowedclients`=714 WHERE `allowedclients`=202
1.7 [2013.10.08] (10 загрузок)
! Исправлено: ошибка ограничивавшая использование флагов разрешенных клиентов.
1.8 [2013.10.21] (154 загрузки)
! Исправлено: ошибка в парсинге CIDR с пробелами.
1.9 [2014.06.11] (47 загрузок)
+ Исправлено: предотвращена возможность бана 0.0.0.0-255.255.255.0 подсети при использовании автоматического определения.
! Изменено: типы клиентов по умолчанию, квар sb_def_allowed_clients, теперь установлен в: "bgj" (удалены RevEmu и AVSMP).
+ Обновите базу данных: ALTER TABLE `subnetbans` CHANGE `allowedclients` `allowedclients` SMALLINT UNSIGNED NOT NULL; UPDATE `subnetbans` SET `allowedclients`=578 WHERE `allowedclients`=714
1.10 [2014.08.02]
+ Исправлено: предотвращена потенциальная возможность использования предыдущих данных whois.
! Изменено: включаемые файлы переделаны на инклюды.
+ Исправлено: добавлено несколько проверок в функции работы с IP адресами.

2.0 [2015.07.05] (6 загрузок) (code name ASsBans)
! Изменено: теперь плагин использует модуль Whois.
+ Добавлено: поддержка банов автономных систем.
+ Добавлено: поддержка нового типа клиентов dproto: SmartSteamEmu3.
- Удалено: cvars sb_use_whois_on_connect и sb_use_whois_for_ban.
+ Добавлено: cvar sb_def_ban_as - указание для выбора автоматического бана подсети либо автономной системы.
! Изменено: типы клиентов по умолчанию, квар sb_def_allowed_clients, теперь установлен в: "bjk" (удален SC2009, добавлен SSE3).
+ Рекомендуется обновить базу данных: UPDATE `subnetbans` SET `allowedclients`=1538 WHERE `allowedclients`=578
2.1 [2015.07.18] (3 загрузки)
! Изменено: вывод информации об ошибке, если запрос к Whois серверу не был успешно завершен.
2.2 [2015.07.21]
! Изменено: вывод от команд sb_list и sb_search в консоль клиенту ограничен 20 записями.
! Изменено: вывод от команды sb_stat в консоль клиенту теперь разбит на страницы и использует в качестве аргумента номер страницы.

Для конвертации базы в файл можно использовать следующий скрипт и реджексы (флаги клиентов заменяются на указанные в скрипте):

SELECT INET_NTOA(`startip`),INET_NTOA(`endip`),'bd',FROM_UNIXTIME(`datetimebanned`),FROM_UNIXTIME(`datetimelastblocked`),`reason` FROM `subnetbans`
(.*?) [\s]*(.*?) [\s]*(.*?) [\s]*(.*? [\s]*.*?) [\s]*(.*? [\s]*.*?) [\s]*(.*)
\1 \2 \3 "\4" "\5" "\6"


Для конвертации из файла в базу (учтено до 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')


Утверждено. //Leonidddd
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось KORD_12.7 21 авг 2014, 12:46, всего редактировалось 3 раз(а).

_http://aghl.ru/ - Half-Life и Adrenaline Gamer: за пределами возможного
Аватара пользователя
KORD_12.7
Скриптер
 
Сообщения: 298
Зарегистрирован: 28 сен 2009, 10:14
Откуда: Владивосток
Благодарил (а): 142 раз.
Поблагодарили: 257 раз.
Опыт программирования: Больше трех лет
Языки программирования: Half-Life
Opposing Force
Adrenaline Gamer
Counter-Strike

Re: Subnetban (бан подсетей)

Сообщение Pauk93 » 21 авг 2014, 05:28

не понравился.геморойно.
Аватара пользователя
Pauk93
 
Сообщения: 58
Зарегистрирован: 20 июл 2014, 17:07
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.

Re: Subnetban (бан подсетей)

Сообщение Subb98 » 21 авг 2014, 05:35

"Геморройно" - не значит "плохо". Вы должны зарегистрироваться, чтобы видеть ссылки. вам "не геморройный" вариант.
«Очень хорошо. Лучше вы, чем я» © Donald J. Trump
Аватара пользователя
Subb98
Модератор
 
Сообщения: 5485
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1329 раз.
Поблагодарили: 2343 раз.
Опыт программирования: Больше трех лет
Языки программирования: PHP

Re: Subnetban (бан подсетей)

Сообщение KORD_12.7 » 21 авг 2014, 12:51

Pauk93 писал(а):не понравился.геморойно.

Ок. Исправил в требованиях возраст на 21+.

Добавлено спустя 17 минут 13 секунд:
Плагин обновился:

1.6 [2013.08.12] (5 загрузок)
    + Добавлено: поддержка новых типов клиентов dproto: sXe Injected и RevEmu 2013.
    ! Изменено: типы клиентов по умолчанию, квар sb_def_allowed_clients, теперь установлен в: "bdghj".
    Рекомендуется обновить базу данных: ALTER TABLE `subnetbans` CHANGE `allowedclients` `allowedclients` SMALLINT UNSIGNED NOT NULL; UPDATE `subnetbans` SET `allowedclients`=714 WHERE `allowedclients`=202
1.7 [2013.10.08] (10 загрузок)
    ! Исправлено: ошибка ограничивавшая использование флагов разрешенных клиентов.
1.8 [2013.10.21] (154 загрузки)
    ! Исправлено: ошибка в парсинге CIDR с пробелами.
1.9 [2014.06.11] (47 загрузок)
    + Исправлено: предотвращена возможность бана 0.0.0.0-255.255.255.0 подсети при использовании автоматического определения.
    ! Изменено: типы клиентов по умолчанию, квар sb_def_allowed_clients, теперь установлен в: "bgj" (удалены RevEmu и AVSMP).
    + Обновите базу данных: ALTER TABLE `subnetbans` CHANGE `allowedclients` `allowedclients` SMALLINT UNSIGNED NOT NULL; UPDATE `subnetbans` SET `allowedclients`=578 WHERE `allowedclients`=714
1.10 [2014.08.02]
    + Исправлено: предотвращена потенциальная возможность использования предыдущих данных whois.
    ! Изменено: включаемые файлы переделаны на инклюды.
    + Исправлено: добавлено несколько проверок в функции работы с IP адресами.

Добавлено спустя 3 минуты 58 секунд:
ЗЫ
Кто-нибудь когда-нибудь собирается аппрувить плагины из данного раздела?

_http://aghl.ru/ - Half-Life и Adrenaline Gamer: за пределами возможного
Аватара пользователя
KORD_12.7
Скриптер
 
Сообщения: 298
Зарегистрирован: 28 сен 2009, 10:14
Откуда: Владивосток
Благодарил (а): 142 раз.
Поблагодарили: 257 раз.
Опыт программирования: Больше трех лет
Языки программирования: Half-Life
Opposing Force
Adrenaline Gamer
Counter-Strike

Re: Subnetban (бан подсетей)

Сообщение Safety1st » 21 авг 2014, 13:17

KORD_12.7 писал(а):ЗЫ
Кто-нибудь когда-нибудь собирается аппрувить плагины из данного раздела?

Что ты, те времена давно прошли :-D
GoldSrc Gaming Community
Аватара пользователя
Safety1st
 
Сообщения: 1958
Зарегистрирован: 08 окт 2011, 05:41
Откуда: Moscow
Благодарил (а): 1690 раз.
Поблагодарили: 933 раз.
Опыт программирования: Больше трех лет
Языки программирования: Counter-Strike 1.6
Half-Life

Re: Subnetban (бан подсетей)

Сообщение Pauk93 » 22 авг 2014, 15:19

KORD_12.7 писал(а):
Pauk93 писал(а):не понравился.геморойно.

Ок. Исправил в требованиях возраст на 21+.

и это говорит скриптер игры.а прргу на комп слабо создать.слабо.а мне нет.так что гуляй
Аватара пользователя
Pauk93
 
Сообщения: 58
Зарегистрирован: 20 июл 2014, 17:07
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.

Re: Subnetban (бан подсетей)

Сообщение KORD_12.7 » 22 авг 2014, 16:05

Pauk93 писал(а):и это говорит скриптер игры.а прргу на комп слабо создать.слабо.а мне нет.так что гуляй

Ок. Как скажешь, гуру, пойду на улицу, погуляю.

ЗЫ
[spoiler]Какие там программы ты написал? Калькулятор в дельфи? А то меня терзают смутные сомнения по этому поводу, глядя на твою орфографию и неспособность цитировать чужие сообщения.[/spoiler]
Последний раз редактировалось KORD_12.7 22 авг 2014, 16:16, всего редактировалось 1 раз.

_http://aghl.ru/ - Half-Life и Adrenaline Gamer: за пределами возможного
Аватара пользователя
KORD_12.7
Скриптер
 
Сообщения: 298
Зарегистрирован: 28 сен 2009, 10:14
Откуда: Владивосток
Благодарил (а): 142 раз.
Поблагодарили: 257 раз.
Опыт программирования: Больше трех лет
Языки программирования: Half-Life
Opposing Force
Adrenaline Gamer
Counter-Strike

Re: Subnetban (бан подсетей)

Сообщение Dmitry Beast » 22 авг 2014, 16:11

это он вроде как понтанулся или что?... :ROFL:
Аватара пользователя
Dmitry Beast
 
Сообщения: 1560
Зарегистрирован: 24 дек 2010, 10:35
Откуда: Египет
Благодарил (а): 440 раз.
Поблагодарили: 207 раз.
Опыт программирования: Больше трех лет
Языки программирования: All Languages

Re: Subnetban (бан подсетей)

Сообщение Pauk93 » 22 авг 2014, 16:27

BeasT писал(а):это он вроде как понтанулся или что?... :ROFL:

лох я программист
Аватара пользователя
Pauk93
 
Сообщения: 58
Зарегистрирован: 20 июл 2014, 17:07
Благодарил (а): 2 раз.
Поблагодарили: 1 раз.

Re: Subnetban (бан подсетей)

Сообщение Dmitry Beast » 22 авг 2014, 16:55

сочувствую тебе и одновременно горжусь тобой, не каждый признает в себе лоха :thumbs_up
Аватара пользователя
Dmitry Beast
 
Сообщения: 1560
Зарегистрирован: 24 дек 2010, 10:35
Откуда: Египет
Благодарил (а): 440 раз.
Поблагодарили: 207 раз.
Опыт программирования: Больше трех лет
Языки программирования: All Languages

След.

Вернуться в Утвержденные плагины

Кто сейчас на конференции

Сейчас этот форум просматривают: нет зарегистрированных пользователей и гости: 7