АнтиРеконнект по IP -
VaReNiX - 07.05.2014
Здравствуйте.
Решил написать АнтиРеконнект по IP, в этом случае можно защитить сервер сразу от двух видов атак:
1. Стандартный реконнект собейтом/ботом
2. Join Flood
И возник весьма важный вопрос, как лучше хранить IP игрока (в массиве, enum`e, или как еще?) в течении n-секунд? :bn:
А так же как спустя n-секунд удалять этот IP
Была идея использовать таймер, но каким методом чтобы спустя n-секунд удалять нужный IP из массива/enum`a/или еще откуда то xD. Да и если создавать таймер для каждого вышедшего игрока, может быть плохо :ak:
Главный вопрос: В чём хранить IP игрока, и как его удалить спустя n-секунд
И еще, пробовал использовать вот этот метод: https://sampforum.blast.hk/showthread.php?tid=470156
Не совсем то что нужно.
Заранее спасибо за советы!
Re: АнтиРеконнект по IP -
Stepashka - 07.05.2014
Для начала не использовать тэги форматирование строк там где это не нужно!
И подобных скриптов столько, что хоть *опой жуй!
Re: АнтиРеконнект по IP -
-Stranger- - 07.05.2014
Элементарно.
Двухмерный массив, который содержит IP, в виде INT числа и unixtime его удаления.
Ежесекундно проходимся циклом по массиву и проверяем значение unixtime.
Так-же при конекте ищем IP в этом массиве.
Придётся разве что написать несколько менеджеров массива, в частности поиск свободной ячейки или сортировка, поиск конкретного IP, поиск устаревших записей...
Способ хранения IP можете посмотреть в моём FS:
https://sampforum.blast.hk/showthread.php?tid=374358 , в частности EncodeIP, DecodeIP.
Re: АнтиРеконнект по IP -
VaReNiX - 07.05.2014
Quote:
Originally Posted by Stepashka
Для начала не использовать тэги форматирование строк там где это не нужно!
И подобных скриптов столько, что хоть *опой жуй!
|
Я спросил совет, как лучше хранить и удалять IP через несколько секунд чтобы написать "мне понятный/доступный" код, а не есть ли в паблике! Во всяком случае, спасибо за внимание
Re: АнтиРеконнект по IP -
VaReNiX - 07.05.2014
Quote:
Originally Posted by -Stranger-
Элементарно.
Двухмерный массив, который содержит IP, в виде INT числа и unixtime его удаления.
Ежесекундно проходимся циклом по массиву и проверяем значение unixtime.
Так-же при конекте ищем IP в этом массиве.
Придётся разве что написать несколько менеджеров массива, в частности поиск свободной ячейки или сортировка, поиск конкретного IP, поиск устаревших записей...
Способ хранения IP можете посмотреть в моём FS: https://sampforum.blast.hk/showthread.php?tid=374358 , в частности EncodeIP, DecodeIP.
|
Спасибо за совет, сейчас попробую воплотить "слова в код"

Удачного дня
Re: АнтиРеконнект по IP -
Stepashka - 07.05.2014
Quote:
Originally Posted by VaReNiX
Я спросил совет, как лучше хранить и удалять IP через несколько секунд чтобы написать "мне понятный/доступный" код, а не есть ли в паблике! Во всяком случае, спасибо за внимание 
|
это главная ошибка всех скриптов, зачем удалять через несколько секунд, храните информация о том когда был последний раз, и берите разницу во времени с текущим, меньше разрешенного лочим, больше, пропускаем и удаляем запись.
Re: АнтиРеконнект по IP -
VaReNiX - 07.05.2014
Quote:
Originally Posted by Stepashka
это главная ошибка всех скриптов, зачем удалять через несколько секунд, храните информация о том когда был последний раз, и берите разницу во времени с текущим, меньше разрешенного лочим, больше, пропускаем и удаляем запись.
|
Тоесть, при добавлении нового IP в массив, проверяем все, если какой то устаревший то удаляем его?
Re: АнтиРеконнект по IP -
-Stranger- - 07.05.2014
Stepashka, иногда, что-бы понять суть проблемы, нужно пройти через эту проблему.
"Удалять через" не очень хороший вариант, но если TS хочет именно так, пусть делает. Потом поймёт как сделать более оптимизировано, но по пути к этому понимаю осознает ещё кучу всего полезного.
VaReNiX, делайте ровно так, как задумали. Это будет работать, а по ходу реализации будете править уже написанный код, это вполне нормально.
Re: АнтиРеконнект по IP -
Stepashka - 07.05.2014
Quote:
Originally Posted by VaReNiX
Тоесть, при добавлении нового IP в массив, проверяем все, если какой то устаревший то удаляем его?
|
не надо проверять все, нашли нужный, его и обработали. Если удалили, то тут два варианта, сдвинули все остальные или оставили это для момента когда массив заполнился, так сказать сборщик мусора.
Re: АнтиРеконнект по IP -
VaReNiX - 07.05.2014
Спасибо всем за советы и подсказки, няшку дал