Меню сайта
Категории раздела
Программы [12]
Сборки HL [3]
Спрайты [32]
Модификации [8]
Боты [7]
Модели оружия [71]
Модели игроков [2]
текстуры [1]
Карты (maps) [2]
Готовые сервера [1]
Разное [6]
Плагины (Plugins) [33]
-[^]-[^]-
-[^]-[^]-
Главная | Регистрация | Вход
Главная » Файлы » Плагины (Plugins)

SubnetBan 1.3
[ Скачать с сервера (436.0 Kb) ] 15.09.2011, 16:17

SubnetBan

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

Информация:
автоматическое определение подсети для заданного ИП с помощью баз GeoIP и Whois
хранение банов подсетей в ini файле или в mysql базе (задается при компиляци)
сохраняет резервную копию ini файла при разбанивании подсети
хранит следующюю информацию о бане подсети:
начальный адрес подсети
конечный адрес подсети
разрешенные клиенты (флаги)
дата бана
последняя дата блокировки подключения из этой подсети
причина бана
АМХХ логгирование использования команд
по умолчанию используется флаг доступа 'n' к командам плагина (можете поменять в файле cmdaccess.ini)
показывает всем игрокам уведомление о вновь подключившемся игроке (выводится страна)
интеграция с dproto, при подключении игрока, если его ИП попадает в забаненную подсеть, то:
проверяется тип клиента используемого игроком и, если этот тип разрешен для данной подсети, то пускает клиента,
иначе игроку сообщается о типе разрешенных клиентов и линк на скачку клиента.
можете использовать этот плагин и без dproto, если желаете.

Команды:
sb_help показывает помощь по использованию других команд
sb_ban добавляет бан подсети по: игроку (используется его ИП для автоматического определения подсети), ИП (используется для автоматического определения подсети), начальному и конечному ИП, или подсети в CIDR формате
sb_unban удаляет бан подсети по: ИП (удалит одну, самую меньшую, или все подсети содержащие этот ИП) или начальному и конечному ИП (удалит точно совпадающую или все пересекающие подсети)
sb_list вывод списка подсетей по: ИП (выведет одну, самую меньшую, или все подсети содержащие этот ИП) или начальному и конечному ИП (выведет точно совпадающую или все пересекающие подсети)
sb_search вывод подсетей содержащих в причине заданную подстроку
sb_whois запрос к базам Whois по заданному ИП или ИП игрока с выводом ответов в консоль (к сожалению использование не многопоточных сокетов приводит к лагу в игре)
sb_stat выводит список игроков на сервере с информацией о: номер игрока, ник, ИП, используемая версия протокола, протокол авторизации (тип используемого клиента), страна, город, название подсети, дополнительная информация из баз Whois (последние два поля требуют sb_use_whois_on_connect "1", что приведет к лагу при подключении игрока)

Квары:
sb_sql_host "127.0.0.1" // Сервер MySql
sb_sql_user "root" // Логин к базе
sb_sql_pass "" // Пароль к базе
sb_sql_db "subnetbans" // Название базы

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

Требования:
модуль geoipmax_amxx.dll (Windows), geoipmax_amxx_i386.so (Linux) должен быть установлен;
если вы желаете использовать запросы к базам Whois, для игрового сервера должны быть разрешены исходящие подключения TCP на порт 43 и работающий DNS клиент;
если вы желаете использовать GeoIp, то вам надо скачать базу GeoLiteCity и скопировать её в папку "addons\amxmodx\data\".

Компиляция:
скопируйте файл "subnetban.sma" в папку "addons\amxmodx\scripting\";
скопируйте файлы "common_functions.inl", "ip_functions.inl" и "whois.inl" в папку "addons\amxmodx\scripting\inline\";
для получения SQL версии раскомментируйте (удалите символы //) строчку содержащюю "#define USING_SQL" в файле "subnetban.sma";
для получения INI версии закомментируйте (поставьте символы //) строчку содержащюю "#define USING_SQL" в файле "subnetban.sma";
введите "compile.exe subnetban.sma" (Windows) или "compile.sh subnetban.sma" (Linux) в командной строке (или смотрите тему Компиляция плагинов AMX Mod X);
скомпилированный плагин (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);
скопируйте "geoipmax_amxx.dll" (Windows) или "geoipmax_amxx_i386.so" (Linux) в папку "addons\amxmodx\modules\";
скачайте GeoLiteCity базу по ссылке http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz и распакуйте её в папку "addons\amxmodx\data\";
также можете обновить базу GeoLiteCountry, скачайте её по ссылке http://geolite.maxmind.com/download/geoip/database/GeoLiteCountry/GeoIP.dat.gz и распакуйте её в папку "addons\amxmodx\data\";
звук buttons\bell1.wav используется для оповещения о подключившемся игроке, так что проверьте что он есть в папке "valve\sounds\buttons\" на сервере.

Скрипт для создания базы данных:
CREATE DATABASE `subnetbans` DEFAULT CHARACTER SET latin1 COLLATE latin1_general_ci;
CREATE TABLE `subnetbans`.`subnetbans` (
`startip` INT UNSIGNED NOT NULL ,
`endip` INT UNSIGNED NOT NULL ,
`allowedclients` TINYINT UNSIGNED NOT NULL ,
`datetimebanned` INT UNSIGNED NOT NULL ,
`datetimelastblocked` INT UNSIGNED NOT NULL ,
`reason` VARCHAR( 64 ) NOT NULL 
);
ALTER TABLE `subnetbans`.`subnetbans` ADD UNIQUE `startip_endip` ( `startip`, `endip` );
ALTER TABLE `subnetbans`.`subnetbans` ADD INDEX `startip` ( `startip` );
ALTER TABLE `subnetbans`.`subnetbans` ADD INDEX `endip` ( `endip` );

История версий:
v0.6a [2009.10.28]
Alpha версия.
v0.7a [2009.11.17]
+ Добавлено: INI версия.
v0.8a [2009.11.18]
+ Добавлено: сохранение причины бана.
v0.9a [2009.11.20]
+ Добавлено: команда sb_whois.
+ Добавлено: команда sb_stat.
+ Добавлено: логгирование использования команд.
v1.0a [2009.11.20]
+ Добавлено: оповещение о подключившемся игроке.
+ Добавлено: сохранение даты бана и даты последней блокировки подключения из подсети.
v1.0b [2009.11.21]
Beta версия.
v1.0b [2009.11.21]
+ Добавлено: опция компиляции: USING_GEOIP.
v1.1b [2009.12.22]
! Исправлено: блокировка бана при sb_use_whois 0.
+ Добавлено: два квара для управления запросами к базам Whois.
v1.2b [2009.04.08]
! Исправлено: команда sb_stat теперь корректно обрабатывает новый тип клиента (HLTV) и все будущие типы клиентов.
v1.3 [2011.02.15]
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

Для превращения шорт в штаны можете использовать следующй скрипт и реджексы:
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"

Категория: Плагины (Plugins) | Добавил: hellraiser
Просмотров: 1332 | Загрузок: 81 | Рейтинг: 0.0/0
Всего комментариев: 0
Добавлять комментарии могут только зарегистрированные пользователи.
[ Регистрация | Вход ]
Личный кабинет
Понедельник
25.11.2024
17:03


Мини-чат
Друзья сайта

Наш баннер
RHLL Game Server
Статистика

Онлайн всего: 1
Гостей: 1
Пользователей: 0
bR-s clan © 2024 Конструктор сайтов - uCoz