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

Subnet Ban Menu: блокировка игроков с динамическим SteamID

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

Модератор: Leonidddd

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

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

Subnet Ban Menu: блокировка игроков с динамическим SteamID

Сообщение Subb98 » 25 фев 2014, 20:03

Текущая версия: 0.1 от 29.07.2016

Описание:
Многие сейчас уже в курсе проблемы с недобросовестными игроками на серверах Counter-Strike, которые меняют SteamID "на лету" и этим самым обходят блокировку по этому ключу. Блокировать их снова и снова этим способом не имеет смысла, но решение есть - блокировать таким игрокам подсеть на некоторое время. Данный плагин призван упростить эту задачу, сделать её доступной для игровых администраторов (ибо для многих из них слова "блокировать подсеть" - это "тёмный лес").

Команды:
  • subnetbanmenu - отобразить меню игроков для дальнейших действий
Настройки:

Код: Выделить всё
#define USE_LOGGING // Закомментируйте эту строку, если не желаете использовать ведение журнала
#define USE_CHAT_ALERT // Закомментируйте эту строку, если не желаете использовать оповещение в чате
const MAX_PLAYERS = 32; // Максимальное количество игроков на сервере
const BAN_TIME = 60; // Количество минут, на которое будет заблокирована подсеть выбранного игрока
if(get_user_flags(id) & ADMIN_BAN/* access level */) { // Уровень доступа к команде subnetbanmenu 






Q: где хранятся записи заблокированных подсетей?
A: если подсеть была заблокирвана на время, то в оперативной памяти (такая запись будет храниться до истечения времени блокировки, либо до отключения сервера), если же подсеть была заблокирована навсегда, то в файле listip.cfg.

Q: как разблокировать подсеть?
A: выполнением команды removeip <address> в консоли сервера/через rcon, например: removeip 127.0.0.0

Q: может ли подсеть игрока быть динамической?
A: да, может.

Q: как быть в таких случаях?
A: как правило, если подсеть игрока динамическая, то диапазон ограничен, так что, если после блокировки подсети игрок, вдруг, снова зайдёт на сервер, достаточно заблокировать его повторно (может быть, пару раз).

Q: могут ли подсети игроков, находящихся на сервере, совпасть?
A: да, могут.

Q: что произойдёт в случае блокировки подсети одного из них?
A: будут заблокированы оба игрока (иммунитет не спасёт).

Q: как заранее узнать, нет ли на сервере игроков с одинаковой подсетью?
A: выполнением команды status в консоли сервера/через rcon (планируется обновление, которое будет предупреждать администратора о совпадениях подсетей игроков, находящихся на сервере).

Версия 0.1 от 29.07.2016:
  • Рефакторинг исходного кода
  • Добавление проверки выбранного игрока по userid
  • Отказ от работы с кваром amx_show_activity
Версия 0.1a от 25.02.2014:
  • Первый релиз
У вас нет необходимых прав для просмотра вложений в этом сообщении.
Последний раз редактировалось Subb98 02 мар 2014, 02:57, всего редактировалось 1 раз.
“Первый тост – за localhost!” ©
Аватара пользователя
Subb98
Модератор
 
Сообщения: 3806
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1131 раз.
Поблагодарили: 1882 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Subnet Ban Menu: блокировка игроков с динамическим Steam

Сообщение 9iky6 » 25 фев 2014, 20:44

Как всегда рад видеть Ваши плагины :-) только можно бы было добавить квар регулировки команды бана. Вроде бы любая бан-система тянет ban_ip 192.168.0.0 да и в случае чего не будет вопросов: "Помогите, я забанил и не знаю как и где разбанить ааа" :-D

P.S. Я почему-то думал, что нужно банить диапазон с 0 по 255...
Аватара пользователя
9iky6
 
Сообщения: 2178
Зарегистрирован: 30 янв 2012, 19:07
Откуда: Россия
Благодарил (а): 375 раз.
Поблагодарили: 701 раз.

Re: Subnet Ban Menu: блокировка игроков с динамическим Steam

Сообщение Subb98 » 25 фев 2014, 21:47

9iky6 писал(а):Как всегда рад видеть Ваши плагины :-) только можно бы было добавить квар регулировки команды бана. Вроде бы любая бан-система тянет ban_ip 192.168.0.0

Благодарю. ) Использую команду движка, т.к. знаю точно, что она будет блокировать именно подсеть, а не конкретный адрес. Вот, например, если мы рассмотрим функцию из Advanced Bans:

Код: Выделить всё
public client_authorized(client)
{
        static authid[35];
        get_user_authid(client, authid, sizeof(authid) - 1);
        
        static ip
[35];
        get_user_ip(client, ip, sizeof(ip) - 1, 1);
        
        static array_pos
;
        
        if
( TrieGetCell(g_trie, authid, array_pos) || TrieGetCell(g_trie, ip, array_pos) )
        {
                static data[BannedData];
                ArrayGetArray(g_array, array_pos, data);
                
                PrintBanInformation
(client, data[bd_name], data[bd_steamid], data[bd_reason], data[bd_banlength], data[bd_unbantime], data[bd_admin_name], data[bd_admin_steamid], true, true);
                
                set_task
(get_pcvar_float(ab_bandelay), "TaskDisconnectPlayer", client);
        }
}

То обнаружим, что ip-адрес клиента сверяется на совпадение целиком.

9iky6 писал(а):да и в случае чего не будет вопросов: "Помогите, я забанил и не знаю как и где разбанить ааа" :-D

А вот это замечание совершенно справедливо, я дополню первый пост необходимой информацией в ближайшее время. )

9iky6 писал(а):P.S. Я почему-то думал, что нужно банить диапазон с 0 по 255...

При блокировке адреса вида 46.146.0.0 стандартной командой движка мы итак подразумеваем все диапазоны, начиная от 46.146.0.0 и заканчивая 46.146.255.255. )
“Первый тост – за localhost!” ©
Аватара пользователя
Subb98
Модератор
 
Сообщения: 3806
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1131 раз.
Поблагодарили: 1882 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Subnet Ban Menu: блокировка игроков с динамическим Steam

Сообщение 9iky6 » 25 фев 2014, 22:05

subb98, не думал, что там всё так сложно :(
Аватара пользователя
9iky6
 
Сообщения: 2178
Зарегистрирован: 30 янв 2012, 19:07
Откуда: Россия
Благодарил (а): 375 раз.
Поблагодарили: 701 раз.

Re: Subnet Ban Menu: блокировка игроков с динамическим Steam

Сообщение Subb98 » 25 фев 2014, 22:09

9iky6, угу. Честно, мне лень в свою систему банов добавлять ещё и функцию блокировки подсетей, много проверок придётся делать, да и не так часто будет использоваться... Поэтому написал эту менюшку в качестве временного решения.
“Первый тост – за localhost!” ©
Аватара пользователя
Subb98
Модератор
 
Сообщения: 3806
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1131 раз.
Поблагодарили: 1882 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Subnet Ban Menu: блокировка игроков с динамическим Steam

Сообщение 9iky6 » 25 фев 2014, 22:26

Аватара пользователя
9iky6
 
Сообщения: 2178
Зарегистрирован: 30 янв 2012, 19:07
Откуда: Россия
Благодарил (а): 375 раз.
Поблагодарили: 701 раз.

Re: Subnet Ban Menu: блокировка игроков с динамическим Steam

Сообщение Subb98 » 02 мар 2014, 02:58

Первый пост обновлён: добавлен FAQ.
“Первый тост – за localhost!” ©
Аватара пользователя
Subb98
Модератор
 
Сообщения: 3806
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1131 раз.
Поблагодарили: 1882 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Subnet Ban Menu: блокировка игроков с динамическим Steam

Сообщение Subb98 » 29 июл 2016, 16:42

Первый пост обновлён, актуализированы вложения и описание.
“Первый тост – за localhost!” ©
Аватара пользователя
Subb98
Модератор
 
Сообщения: 3806
Зарегистрирован: 24 мар 2011, 19:42
Откуда: г. Пермь
Благодарил (а): 1131 раз.
Поблагодарили: 1882 раз.
Опыт программирования: Больше трех лет
Языки программирования: Pawn, PHP

Re: Subnet Ban Menu: блокировка игроков с динамическим Steam

Сообщение Seven » 16 дек 2016, 20:48

.
Последний раз редактировалось Seven 15 янв 2017, 14:55, всего редактировалось 2 раз(а).
Аватара пользователя
Seven
 
Сообщения: 7
Зарегистрирован: 06 июл 2016, 16:02
Благодарил (а): 1 раз.
Поблагодарили: 0 раз.

Re: Subnet Ban Menu: блокировка игроков с динамическим Steam

Сообщение cs_4ever » 14 янв 2017, 22:05

Игрок не показывает, почему так
Аватара пользователя
cs_4ever
 
Сообщения: 1
Зарегистрирован: 14 янв 2017, 22:03
Благодарил (а): 0 раз.
Поблагодарили: 0 раз.
Языки программирования: C++
Php
C#

След.

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

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

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