SA-MP Forums

Go Back   SA-MP Forums > Non-English > Languages > Русский/Russian

Reply
 
Thread Tools Display Modes
Old 07/05/2014, 05:55 PM   #1
VaReNiX
Big Clucker
 
Join Date: Oct 2013
Posts: 55
Reputation: 0
Default АнтиРеконнект по IP


Здравствуйте.

Решил написать АнтиРеконнект по IP, в этом случае можно защитить сервер сразу от двух видов атак:
1. Стандартный реконнект собейтом/ботом
2. Join Flood

И возник весьма важный вопрос, как лучше хранить IP игрока (в массиве, enum`e, или как еще?) в течении n-секунд? :bn:
А так же как спустя n-секунд удалять этот IP

Была идея использовать таймер, но каким методом чтобы спустя n-секунд удалять нужный IP из массива/enum`a/или еще откуда то xD. Да и если создавать таймер для каждого вышедшего игрока, может быть плохо :ak:

Главный вопрос: В чём хранить IP игрока, и как его удалить спустя n-секунд

И еще, пробовал использовать вот этот метод: http://forum.sa-mp.com/showthread.php?t=470156
Не совсем то что нужно.

Заранее спасибо за советы!

VaReNiX is offline   Reply With Quote
Old 07/05/2014, 06:05 PM   #2
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,750
Reputation: 138
Default Re: АнтиРеконнект по IP

Для начала не использовать тэги форматирование строк там где это не нужно!

И подобных скриптов столько, что хоть *опой жуй!
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 07/05/2014, 06:15 PM   #3
-Stranger-
Gangsta
 
-Stranger-'s Avatar
 
Join Date: Mar 2010
Location: TCP/IPv4
Posts: 766
Reputation: 40
Default Re: АнтиРеконнект по IP

Элементарно.
Двухмерный массив, который содержит IP, в виде INT числа и unixtime его удаления.
Ежесекундно проходимся циклом по массиву и проверяем значение unixtime.
Так-же при конекте ищем IP в этом массиве.

Придётся разве что написать несколько менеджеров массива, в частности поиск свободной ячейки или сортировка, поиск конкретного IP, поиск устаревших записей...

Способ хранения IP можете посмотреть в моём FS: http://forum.sa-mp.com/showthread.php?t=374358 , в частности EncodeIP, DecodeIP.
__________________
[Mess with the best, die like the rest]
Помог? - жми на . Тебе один клик, а мне приятно
-Stranger- is offline   Reply With Quote
Old 07/05/2014, 06:15 PM   #4
VaReNiX
Big Clucker
 
Join Date: Oct 2013
Posts: 55
Reputation: 0
Default Re: АнтиРеконнект по IP

Quote:
Originally Posted by Stepashka View Post
Для начала не использовать тэги форматирование строк там где это не нужно!

И подобных скриптов столько, что хоть *опой жуй!
Я спросил совет, как лучше хранить и удалять IP через несколько секунд чтобы написать "мне понятный/доступный" код, а не есть ли в паблике! Во всяком случае, спасибо за внимание
VaReNiX is offline   Reply With Quote
Old 07/05/2014, 06:20 PM   #5
VaReNiX
Big Clucker
 
Join Date: Oct 2013
Posts: 55
Reputation: 0
Default Re: АнтиРеконнект по IP

Quote:
Originally Posted by -Stranger- View Post
Элементарно.
Двухмерный массив, который содержит IP, в виде INT числа и unixtime его удаления.
Ежесекундно проходимся циклом по массиву и проверяем значение unixtime.
Так-же при конекте ищем IP в этом массиве.

Придётся разве что написать несколько менеджеров массива, в частности поиск свободной ячейки или сортировка, поиск конкретного IP, поиск устаревших записей...

Способ хранения IP можете посмотреть в моём FS: http://forum.sa-mp.com/showthread.php?t=374358 , в частности EncodeIP, DecodeIP.
Спасибо за совет, сейчас попробую воплотить "слова в код"
Удачного дня
VaReNiX is offline   Reply With Quote
Old 07/05/2014, 06:20 PM   #6
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,750
Reputation: 138
Default Re: АнтиРеконнект по IP

Quote:
Originally Posted by VaReNiX View Post
Я спросил совет, как лучше хранить и удалять IP через несколько секунд чтобы написать "мне понятный/доступный" код, а не есть ли в паблике! Во всяком случае, спасибо за внимание
это главная ошибка всех скриптов, зачем удалять через несколько секунд, храните информация о том когда был последний раз, и берите разницу во времени с текущим, меньше разрешенного лочим, больше, пропускаем и удаляем запись.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 07/05/2014, 06:25 PM   #7
VaReNiX
Big Clucker
 
Join Date: Oct 2013
Posts: 55
Reputation: 0
Default Re: АнтиРеконнект по IP

Quote:
Originally Posted by Stepashka View Post
это главная ошибка всех скриптов, зачем удалять через несколько секунд, храните информация о том когда был последний раз, и берите разницу во времени с текущим, меньше разрешенного лочим, больше, пропускаем и удаляем запись.
Тоесть, при добавлении нового IP в массив, проверяем все, если какой то устаревший то удаляем его?
VaReNiX is offline   Reply With Quote
Old 07/05/2014, 06:25 PM   #8
-Stranger-
Gangsta
 
-Stranger-'s Avatar
 
Join Date: Mar 2010
Location: TCP/IPv4
Posts: 766
Reputation: 40
Default Re: АнтиРеконнект по IP

Stepashka, иногда, что-бы понять суть проблемы, нужно пройти через эту проблему.

"Удалять через" не очень хороший вариант, но если TS хочет именно так, пусть делает. Потом поймёт как сделать более оптимизировано, но по пути к этому понимаю осознает ещё кучу всего полезного.

VaReNiX, делайте ровно так, как задумали. Это будет работать, а по ходу реализации будете править уже написанный код, это вполне нормально.
__________________
[Mess with the best, die like the rest]
Помог? - жми на . Тебе один клик, а мне приятно
-Stranger- is offline   Reply With Quote
Old 07/05/2014, 06:31 PM   #9
Stepashka
Godfather
 
Stepashka's Avatar
 
Join Date: Jul 2008
Location: near PC
Posts: 5,750
Reputation: 138
Default Re: АнтиРеконнект по IP

Quote:
Originally Posted by VaReNiX View Post
Тоесть, при добавлении нового IP в массив, проверяем все, если какой то устаревший то удаляем его?
не надо проверять все, нашли нужный, его и обработали. Если удалили, то тут два варианта, сдвинули все остальные или оставили это для момента когда массив заполнился, так сказать сборщик мусора.
__________________
Клятва Страуструпа: "Я обязуюсь прилежно комментировать свой код, не использовать goto и следить за состоянием своих потоков и выделяемой памяти. Я обязуюсь не оставлять мусора в системе и избегать однобуквенных переменных. Ресет." © Куч
M&M GM
Status: ON HOLD

Stepashka is offline   Reply With Quote
Old 07/05/2014, 06:52 PM   #10
VaReNiX
Big Clucker
 
Join Date: Oct 2013
Posts: 55
Reputation: 0
Default Re: АнтиРеконнект по IP

Спасибо всем за советы и подсказки, няшку дал
VaReNiX is offline   Reply With Quote
Reply

Thread Tools
Display Modes

Posting Rules
You may not post new threads
You may not post replies
You may not post attachments
You may not edit your posts

BB code is On
Smilies are On
[IMG] code is On
HTML code is Off



All times are GMT. The time now is 05:13 AM.


Powered by vBulletin® Version 3.8.6
Copyright ©2000 - 2019, Jelsoft Enterprises Ltd.