Правила форума Гаранты форума
Размещение рекламы AMX-X компилятор

Здравствуйте, гость Вход | Регистрация

Наши новости:

14-дек
24-апр
10-апр
11-апр

5 страниц V   1 2 ... 3 4 »

block ip

, простой плагин для бана ip/подсети
Статус пользователя Legenda
сообщение 27.10.2013, 23:04
Сообщение #1


Иконка группы

Стаж: 14 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

1. Описание
Плагин выводит в консоли форматированный список IP:port и nickname игроков на сервере.
Плагин имеет графическое меню для выбора и блокировки ip адреса/подсети игрока.

2. Команды
amx_readip - в консоли выводит форматированный список ip адресов и имен игроков, доступ флаг d (ADMIN_BAN)
amx_blockipmenu - графическое меню для выбора игрока и выбора подсети для бана, доступ флаг d (ADMIN_BAN)
действие при бане - addip

3. файл с логами:
cstrike/addons/amxmodx/logs/block_ip.log
логируется ник админа, ник забаненного, блокированный ip адрес

4. Установка:
1) копировать amx_blockip.amxx в директорию cstrike/addons/amxmodx/plugins/
2) подключить плагин в файле cstrike/addons/amxmodx/configs/plugins.ini

img

Прикрепленное изображение
Прикрепленное изображение
Прикрепленное изображение


Прикрепленный файл  amx_blockip.7z ( 9,55 килобайт ) Кол-во скачиваний: 1226

теги: бан , подсеть , amxx , cs 1.6 , плагин


разбанить

Все активные баны находятся в памяти сервера, при этом перманентные баны сохраняются в файле listip.cfg
Это необходимо для того, что восстановить список банов при выключении или рестарт сервера.
И еще раз: временные баны удаляются автоматически при рестарте или выключении сервера.
В файле хранятся только перманентные баны.

Так что разбанить можно следующими методами:
Вариант 1
Удалить нужный бан или все баны в файле listip.cfg
Код
1. остановить сервер (обязательно)
2. найти и удалить содержимое listip.cfg в папке cstrike(cstrike_russian)
3. включить сервер


Вариант 2
Использовать команды в консоли сервера
Код
listip - показывает список банов
removeip IP - удаляет бан
writeip - перезаписывает баны в файл listip.cfg



upd: используйте плагин версии 0.2 или выше (26.01.2014)
в версии 0.1 есть критическая ошибка
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   Цитировать сообщение
Статус пользователя f1nik
сообщение 27.10.2013, 23:17
Сообщение #2


Иконка группы

Стаж: 13 лет

Сообщений: 1862
Благодарностей: 932
Полезность: 1010

Legenda,
С телефона не посмотреть исходник... В каком формате идет бан по подсети...? Сколько уровней?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 27.10.2013, 23:19
Сообщение #3


Иконка группы

Стаж: 14 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(f1nik @ 28.10.2013, 1:17) *
Legenda,
С телефона не посмотреть исходник... В каком формате идет бан по подсети...?

идет на выбор
примерно такой

Код
193.26.217.22
193.26.217.0
193.26.0.0
193.0.0.0
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 2 раз
   + Цитировать сообщение
Статус пользователя f1nik
сообщение 27.10.2013, 23:19
Сообщение #4


Иконка группы

Стаж: 13 лет

Сообщений: 1862
Благодарностей: 932
Полезность: 1010

Цитата(Legenda @ 28.10.2013, 0:19) *
идет на выбор
примерно такой

Код
193.26.217.22
193.26.217.0
193.26.0.0
193.0.0.0


Спасибо. Очень даже удобно! Забрал, полезно)))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя loler222
сообщение 28.10.2013, 6:20
Сообщение #5
Стаж: 10 лет

Сообщений: 161
Благодарностей: 33
Полезность: 160

Жаль английский только. SMA бы найти
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 28.10.2013, 7:45
Сообщение #6


Иконка группы

Стаж: 14 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(loler222 @ 28.10.2013, 8:20) *
Жаль английский только. SMA бы найти

???
зачем его искать? внутри архива уже есть исходник

переводить в принципе не чего
кроме названия двух менюшек
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя primm
сообщение 28.10.2013, 9:21
Сообщение #7


Стаж: 14 лет
Город: Москва

Сообщений: 517
Благодарностей: 140
Полезность: 520

я так понял банит перманентом, а квара на время бана подсетки нет.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 28.10.2013, 10:08
Сообщение #8


Стаж: 12 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(primm @ 28.10.2013, 14:21) *
я так понял банит перманентом, а квара на время бана подсетки нет.

Квара нету, но, можно изменить время в строке 126
Код:
server_cmd("addip 0 %s ; wait;wait;wait; writeip", s_Data)


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя loler222
сообщение 28.10.2013, 11:40
Сообщение #9
Стаж: 10 лет

Сообщений: 161
Благодарностей: 33
Полезность: 160

Упс, ошибся. Извиняюсь. Тогда тоже заберу, не так часто, но пригодится такая штука
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя primm
сообщение 28.10.2013, 11:45
Сообщение #10


Стаж: 14 лет
Город: Москва

Сообщений: 517
Благодарностей: 140
Полезность: 520

А разбан то где?)))
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя winzh1
сообщение 28.10.2013, 11:47
Сообщение #11


Стаж: 12 лет

Сообщений: 1414
Благодарностей: 600
Полезность: 838

Цитата(primm @ 28.10.2013, 16:45) *
А разбан то где?)))

listip проверяем активные баны
removeip <ip> разбаниваем нужный ip адрес


Установлю и настрою FreshBans, DopBan.
Писать в ЛС.
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Sky Cat
сообщение 28.10.2013, 11:59
Сообщение #12
Стаж: 11 лет
Город: Белгород

Сообщений: 1167
Благодарностей: 718
Полезность: 698

Скрытый текст
Код:
#include <amxmodx>
#include <amxmisc>

#define ADMIN ADMIN_BAN

new msg_block[128]
new tabul[9][] = {
"^t", //0
" ^t", //1
" ^t", //2
" ^t", //3
" ^t", //4
" ^t", //5
" ^t", //6
" ^t", //7
" ^t"}; //8

public plugin_init()
{
register_plugin("block ip", "0.1", "legenda");
register_concmd("amx_readip", "readip", ADMIN, "- отображает ip, которые на сервере")
register_concmd("amx_blockipmenu", "menu_chooseuserforblockip", ADMIN, "- отображение меню для блока IP")
}

public readip(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED

new inum, iPlayers[32], nickname[32], ip[32], msg[128]
get_players(iPlayers, inum)
client_print(id,print_console,"==================================================^n Игроки:%d",inum)
client_print(id,print_console,"# ^t^t^t^tАйпи^t^t^t^t^t^tимя")
for (new i = 0; i < inum; ++i)
{
new player = iPlayers[i]
get_user_name(player,nickname,31)
get_user_ip(player,ip,31)
format(nickname,10, "%s",nickname)
new i_tabul = 21-strlen(ip)
(i <=9) ? format(msg,127,"[%d] ^t%s%s%s",i+1,ip,tabul[i_tabul],nickname) : format(msg,127,"[%d]^t%s%s%s",i+1,ip,tabul[i_tabul],nickname)
client_print(id,print_console,msg)
}
client_print(id,print_console,"==================================================^n^n")

return PLUGIN_HANDLED
}

public menu_chooseuserforblockip(id)
{
new p_Menu = menu_create("\rМеню:", "menu_chooose_user")
new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)

for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
menu_additem(p_Menu, s_Name, s_Player, 0)
}

menu_display(id, p_Menu, 0)

return PLUGIN_HANDLED
}

public menu_chooose_user(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback, nickname[32]
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Player = str_to_num(s_Data)
get_user_name(i_Player,nickname,31)
choose_network(id, i_Player)
menu_destroy(menu)
return PLUGIN_HANDLED
}

public choose_network(id, i_Player)
{
new ip_Menu = menu_create("\rNetwork menu:", "menu_block_network")
new player_ip[23]
get_user_ip(i_Player, player_ip, 22,1)
replace_all(player_ip,22,"."," ")

new okteta1[4],okteta2[4],okteta3[4],okteta4[4]
parse(player_ip,okteta1,charsmax(okteta1),okteta2,charsmax(okteta2),okteta3,char
smax(okteta3),okteta4,charsmax(okteta4))
new n0[23], n1[23], n2[23], n3[23]

format(n0, 22, "%s.%s.%s.%s", okteta1, okteta2,okteta3,okteta4)
format(n1, 22, "%s.%s.%s.0", okteta1, okteta2,okteta3)
format(n2, 22, "%s.%s.0.0", okteta1, okteta2)
format(n3, 22, "%s.0.0.0", okteta1)

menu_additem(ip_Menu, n0,n0, 0)
menu_additem(ip_Menu, n1,n1, 0)
menu_additem(ip_Menu, n2,n2, 0)
menu_additem(ip_Menu, n3,n3, 0)

new user_name_admin[32],user_name_block[32]
get_user_name(id,user_name_admin,31)
get_user_name(i_Player,user_name_block,31)
format(msg_block, 127, "%s block %s", user_name_admin, user_name_block)

menu_display(id, ip_Menu, 0)
return PLUGIN_HANDLED
}

public menu_block_network(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[23], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
server_cmd("addip 0 %s ; wait;wait;wait; writeip", s_Data)

client_print(id,print_console,"^n^n==================================================")
client_print(id,print_console,"%s Айпи: %s",msg_block, s_Data)
client_print(id,print_console,"==================================================^n^n")
log_to_file("block_ip.log","%s Айпи: %s",msg_block, s_Data)

menu_destroy(menu)

return PLUGIN_HANDLED
}


Харьков, спишь?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя primm
сообщение 28.10.2013, 11:59
Сообщение #13


Стаж: 14 лет
Город: Москва

Сообщений: 517
Благодарностей: 140
Полезность: 520

А "addip 0.0 <ip>" баним нужный ip адрес. (
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 28.10.2013, 12:04
Сообщение #14


Иконка группы

Стаж: 14 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(primm @ 28.10.2013, 13:59) *
А "addip 0.0 <ip>" баним нужный ip адрес. (

все правильно
так и написано вообще-то
графическое меню для команды addip и возможность пользоваться ей средствам amxx для доступа, что бы rcon пароль например не давать+ логирование тех, кто пользовался

Цитата
amx_blockipmenu - графическое меню для выбора игрока и выбора подсети для бана, доступ флаг d (ADMIN_BAN)
действие при бане - addip



Цитата(winzh1 @ 28.10.2013, 13:47) *
listip проверяем активные баны
removeip <ip> разбаниваем нужный ip адрес

и после этого советую прописать writeip
иначе после рестарта сервера/смены карты бан снова считается из файла
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя primm
сообщение 28.10.2013, 12:08
Сообщение #15


Стаж: 14 лет
Город: Москва

Сообщений: 517
Благодарностей: 140
Полезность: 520

Разбан что идет без ркона? С консоли клиента админа?
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя Legenda
сообщение 28.10.2013, 12:12
Сообщение #16


Иконка группы

Стаж: 14 лет

Сообщений: 3619
Благодарностей: 1706
Полезность: 1010

Меценат Меценат

Цитата(primm @ 28.10.2013, 14:08) *
Разбан что идет без ркона? С консоли клиента админа?

в этом плагине нет разбана, только бан

в будущем выложу вторую версию этого плагина, где уже есть:
более удобное GUI, бан+разбан, + логи, + тонкая настройка, возможность записи в БД(локально или же mysql)
может еще что придумаю...


ps Разбанить можно через консоль сервера
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
Статус пользователя HELLCS
сообщение 29.10.2013, 3:32
Сообщение #17


Стаж: 10 лет

Сообщений: 3
Благодарностей: 1
Полезность: 0

Скрытый текст

Код:
#include <amxmodx>
#include <amxmisc>

#define ADMIN ADMIN_BAN

new msg_block[128]
new g_Cvar
new tabul[9][] = {
"^t", //0
" ^t", //1
" ^t", //2
" ^t", //3
" ^t", //4
" ^t", //5
" ^t", //6
" ^t", //7
" ^t"}; //8

public plugin_init()
{
g_Cvar = register_cvar("ban_time", "60")
register_plugin("block ip", "0.1", "legenda");
register_concmd("amx_readip", "readip", ADMIN, "- displays ip who is on server")
register_concmd("amx_blockipmenu", "menu_chooseuserforblockip", ADMIN, "- displays menu for ban ip or network")
}

public readip(id, level, cid)
{
if (!cmd_access(id, level, cid, 1))
return PLUGIN_HANDLED

new inum, iPlayers[32], nickname[32], ip[32], msg[128]
get_players(iPlayers, inum)
client_print(id,print_console,"==================================================^n Users:%d",inum)
client_print(id,print_console,"# ^t^t^t^tip addres^t^t^t^t^t^tname")
for (new i = 0; i < inum; ++i)
{
new player = iPlayers[i]
get_user_name(player,nickname,31)
get_user_ip(player,ip,31)
format(nickname,10, "%s",nickname)
new i_tabul = 21-strlen(ip)
(i <=9) ? format(msg,127,"[%d] ^t%s%s%s",i+1,ip,tabul[i_tabul],nickname) : format(msg,127,"[%d]^t%s%s%s",i+1,ip,tabul[i_tabul],nickname)
client_print(id,print_console,msg)
}
client_print(id,print_console,"==================================================^n^n")

return PLUGIN_HANDLED
}

public menu_chooseuserforblockip(id)
{
new p_Menu = menu_create("\rPlayer menu:", "menu_chooose_user")
new s_Players[32], i_Num, i_Player
new s_Name[32], s_Player[10]
get_players(s_Players, i_Num)

for (new i; i < i_Num; i++)
{
i_Player = s_Players[i]
get_user_name(i_Player, s_Name, charsmax(s_Name))
num_to_str(i_Player, s_Player, charsmax(s_Player))
menu_additem(p_Menu, s_Name, s_Player, 0)
}

menu_display(id, p_Menu, 0)

return PLUGIN_HANDLED
}

public menu_chooose_user(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[6], s_Name[64], i_Access, i_Callback, nickname[32]
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
new i_Player = str_to_num(s_Data)
get_user_name(i_Player,nickname,31)
choose_network(id, i_Player)
menu_destroy(menu)
return PLUGIN_HANDLED
}

public choose_network(id, i_Player)
{
new ip_Menu = menu_create("\rNetwork menu:", "menu_block_network")
new player_ip[23]
get_user_ip(i_Player, player_ip, 22,1)
replace_all(player_ip,22,"."," ")

new okteta1[4],okteta2[4],okteta3[4],okteta4[4]
parse(player_ip,okteta1,charsmax(okteta1),okteta2,charsmax(okteta2),okteta3,char
smax(okteta3),okteta4,charsmax(okteta4))
new n0[23], n1[23], n2[23], n3[23]

format(n0, 22, "%s.%s.%s.%s", okteta1, okteta2,okteta3,okteta4)
format(n1, 22, "%s.%s.%s.0", okteta1, okteta2,okteta3)
format(n2, 22, "%s.%s.0.0", okteta1, okteta2)
format(n3, 22, "%s.0.0.0", okteta1)

menu_additem(ip_Menu, n0,n0, 0)
menu_additem(ip_Menu, n1,n1, 0)
menu_additem(ip_Menu, n2,n2, 0)
menu_additem(ip_Menu, n3,n3, 0)

new user_name_admin[32],user_name_block[32]
get_user_name(id,user_name_admin,31)
get_user_name(i_Player,user_name_block,31)
format(msg_block, 127, "%s block %s", user_name_admin, user_name_block)

menu_display(id, ip_Menu, 0)
return PLUGIN_HANDLED
}

public menu_block_network(id, menu, item)
{
if (item == MENU_EXIT)
{
menu_destroy(menu)
return PLUGIN_HANDLED
}

new s_Data[23], s_Name[64], i_Access, i_Callback
menu_item_getinfo(menu, item, i_Access, s_Data, charsmax(s_Data), s_Name, charsmax(s_Name), i_Callback)
server_cmd("addip %d %s ; wait;wait;wait; writeip", get_pcvar_num(g_Cvar), s_Data)

client_print(id,print_console,"^n^n==================================================")
client_print(id,print_console,"%s ip is: %s",msg_block, s_Data)
client_print(id,print_console,"==================================================^n^n")
log_to_file("block_ip.log","%s ip is: %s",msg_block, s_Data)

menu_destroy(menu)

return PLUGIN_HANDLED
}


Если его немного подправить то можно изменять время бана smile.gif
А именно:
Добавить -
Код:
new g_Cvar 
g_Cvar = register_cvar("ban_time", "60")

Изменить -
Код:
server_cmd("addip 0 %s; wait;wait;wait; writeip", s_Data)

на
Код:
server_cmd("addip %d %s; wait;wait;wait; writeip", get_pcvar_num(g_Cvar), s_Data)

Теперь можно в amxx.cfg прописать
Код:
ban_time "время бана"

Думаю вроде правильно подправил angel_not.gif

Отредактировал: HELLCS, - 29.10.2013, 3:55
Прикрепленные файлы:
Прикрепленный файл  amx_blockip.rar ( 1,36 килобайт ) Кол-во скачиваний: 86
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
csgamer
сообщение 8.12.2013, 21:50
Сообщение #18
Стаж: 10 лет

Сообщений: 398
Благодарностей: 16
Полезность: 0

Можно ли сделать чтобы результаты он выводил не в консоль, а в MOTD-окно (как в iptools).
Было бы значительно удобнее!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
csgamer
сообщение 10.12.2013, 10:12
Сообщение #19
Стаж: 10 лет

Сообщений: 398
Благодарностей: 16
Полезность: 0

Legenda,
Можно ли сделать чтобы результаты он выводил не в консоль, а в MOTD-окно (как в iptools).
Было бы значительно удобнее!
Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
   + Цитировать сообщение
Статус пользователя MoJLoDoI
сообщение 15.1.2014, 22:10
Сообщение #20
Стаж: 12 лет

Сообщений: 489
Благодарностей: 198
Полезность: 573

Меценат Меценат

а забанить если игрока нет на сервере тоже сделай плиз


Перейти в начало страницы         Просмотр профиля    Отправить личное сообщение
Поблагодарили 1 раз
   + Цитировать сообщение
5 страниц V   1 2 ... 3 4 »
 
Ответить в данную темуНачать новую тему
 
0 пользователей и 1 гостей читают эту тему: