Войти или зарегистрироваться
  • Вы находитесь в сообществе Rubukkit. Мы - администраторы серверов Minecraft, разрабатываем собственные плагины и переводим на различные языки плагины наших коллег из других стран.

Плагин [ADMN/SEC/MECH] MySQL Login Check IP (MLCI) 1.0

Linkinkov

Старожил
Пользователь
Баллы
173
Имя в Minecraft
linkinkov
Версия плагина: 1.0
Под версию сервера: 1.7-1.11.2 (может и на более ранних версиях будет работать)

В чем суть?
Цель была в создании простого плагина на проверку входящего игрока по IP. Более того, плагин изначально предназначался для работы в связке с сайтом, поэтому в текущей версии и нет ни одной команды, как и permission. При входе плагин проверяет в бд наличие игрока с его ником, если в бд есть игрок, который входит, то производится сверка IP с тем, что имеется в БД. Проверка производится только на имеющихся записях, а не на всех игроках, так как в первую очередь ориентирована она для защиты администраторов, модерации от взлома. Если имеющийся в базе игрок входит под левым IP, его не пускает на сервер и выполняется указанная в конфиге команда. К примеру по умолчанию там блокировка IP, у меня на своих проектах стоит - команда, которая отправляет сообщение в Telegram :)

Особенности:
  • Все данные хранятся в MySQL базе данных. Тестировал на удаленной БД, просадки в производительности нет. Я не силен в потоках, буду рад помощи.
  • Сверка происходит по нику, хотя в новой версии будет по UUID.
  • Работает быстро, при проблемах с коннектом к MySql может закрыть сервер или пускать всех.
Конфиг:
db:
url: jdbc:mysql://localhost:3306/dbname
username: username
password: password
#Название таблицы со списком игроков для проверки
table_list: listip
#Название таблицы со списком IP не прошедших проверку
table_error: errorcheckip

options:
# Если проблемы с подключением к бд
# true = когда бд не доступна, то кикает всех игроков и не дает войти
# false = когда бд не доступна, то пускает всех
kick-if-db-error: true

# Команда что будет исполняться, если входит игрок с неверным IP. Где %s - заменяется на ник
ban-cmd: ban-ip %s


Пример таблицы listip:
aOlw1cV.png


Пример таблицы errorcheckip:
NfSeNt9.png


Будущие изменения:

  • Проверка будет производится только по UUID.
  • Добавлю внутриигровые команды для добавления, удаления игроков из БД.
  • Файл переводов сделаю удобнее и наверно разберусь с потоками.


 
IP бывает динамический и статический. Динамический после перезагрузки роутера меняет IP. Статический - постоянный IP.
Получается, если у меня динамический IP, то меня будет постоянно банить?
 
IP бывает динамический и статический. Динамический после перезагрузки роутера меняет IP. Статический - постоянный IP.
Получается, если у меня динамический IP, то меня будет постоянно банить?
Возможно, плагин работает не по полному адресу, а только по подсети.
 
Работает по полному адресу. Честно, он и ориентировался на статичные адреса, провайдеров с динамикой благо все меньше и меньше.
Мне уже написали, что лучше сделать с добавлением нескольких адресов, чем возможно и займусь
 
Хороший плагин. Подойдет для защиты донатеров и защиты сервера от продажи аккаунтов донатеров:)
Like
 
провайдеров с динамикой благо все меньше и меньше
СОВЕРШЕННО не точное высказывание, ибо статика стоит денег у провайдеров в 90%, пользуются этой услугой единицы, а динамики осталось столько же
 
Последнее редактирование:
СОВЕРШЕННО не точное высказывание, ибо статика стоит денег у провайдеров в 90%, пользуются этой услугой единицы, а динамики осталось столько же
У нас в СПБ, почти все провайдеры с прошлого года, бесплатно выдают статику.
В Мск аналогичная ситуация, в других городах не знаю.

В целом не вижу смысла от этого диалога, я сделаю поддержку масок подсети, как освобожусь.
Но изначальная цель защита конкретного адреса.
 
Можно ещё проще поступить, получать имя провайдера и город игрока, врятли с одного города и провайдера встретятся игроки, и донатеры будут целы и по айпи напрямую не надо проверять, у меня допустим айпи всегда меняется.
 
Можно ещё проще поступить, получать имя провайдера и город игрока, врятли с одного города и провайдера встретятся игроки, и донатеры будут целы и по айпи напрямую не надо проверять, у меня допустим айпи всегда меняется.
если добавить библиотеку GeoAPI, то запуск плагина и его работа с sql базой значительно затруднит профилирование плагина. Работать будет на порядок медленнее.
 

Поделиться этой страницей

Назад
Верх