Re: Защита флуда коннектами в один слот
Цитата:
Сообщение от
okstyle
в char-то ты перевёл, а аргументы в переменной забыл "отчарить". и на ip надо выделять 64 ячейки, а не 16.
"отчарил". поясните, зачем 64 ячейки на ip? :)
Re: Защита флуда коннектами в один слот
Re: Защита флуда коннектами в один слот
255.255.255.255
3*4 + 4 + 3*4 + 4 + 3*4 + 4 + 3*4 = 60
Плюс завершающий \0 тоже 4... Как-то так.
И bool вообще убрать надо, иначе char какой-то костыльный получается.
Re: Защита флуда коннектами в один слот
какие 64 ячейки? пьяные?
PHP код:
main( ) {
new
test[] = "255.255.255.255";
printf( "%i", sizeof test ) ;
}
может и без айпи будет работать?
PHP код:
new slotUsed[ MAX_PLAYERS ];
public OnPlayerConnect( playerid )
{
if ( slotUsed[ playerid ] )
return Ban( playerid ), slotUsed[ playerid ] = 0 ;
slotUsed[ playerid ] = 1;
return true;
}
public OnPlayerDisconnect( playerid, reason )
{
slotUsed[ playerid ] = 0;
return true;
}
Re: Защита флуда коннектами в один слот
Цитата:
Сообщение от
linkinpark
какие 64 ячейки? пьяные?
PHP код:
main( ) {
new
test[] = "255.255.255.255";
printf( "%i", sizeof test ) ;
}
может и без айпи будет работать?
PHP код:
new slotused[ max_players ];
public onplayerconnect( playerid )
{
if ( slotused[ playerid ] )
return ban( playerid ), slotused[ playerid ] = 0 ;
slotused[ playerid ] = 1;
return true;
}
public onplayerdisconnect( playerid, reason )
{
slotused[ playerid ] = 0;
return true;
}
если я не ошибаюсь, ip нужен чтобы по ошибке не забанить игрока который будет заходить на сервер во время атаки.
Re: Защита флуда коннектами в один слот
Цитата:
Сообщение от
LINKINPARK
какие 64 ячейки? пьяные?
PHP код:
main( ) {
new
test[] = "255.255.255.255";
printf( "%i", sizeof test ) ;
}
может и без айпи будет работать?
PHP код:
new slotUsed[ MAX_PLAYERS ];
public OnPlayerConnect( playerid )
{
if ( slotUsed[ playerid ] )
return Ban( playerid ), slotUsed[ playerid ] = 0 ;
slotUsed[ playerid ] = 1;
return true;
}
public OnPlayerDisconnect( playerid, reason )
{
slotUsed[ playerid ] = 0;
return true;
}
Это был самый первый и сырой вариант решения. Если во время атаки зайдёт игрок с таким же ID, он получит банан. + char в 4 раза экономит нам память
Re: Защита флуда коннектами в один слот
Цитата:
Сообщение от
LINKINPARK
какие 64 ячейки? пьяные?
PHP код:
main( ) {
new
test[] = "255.255.255.255";
printf( "%i", sizeof test ) ;
}
может и без айпи будет работать?
PHP код:
new slotUsed[ MAX_PLAYERS ];
public OnPlayerConnect( playerid )
{
if ( slotUsed[ playerid ] )
return Ban( playerid ), slotUsed[ playerid ] = 0 ;
slotUsed[ playerid ] = 1;
return true;
}
public OnPlayerDisconnect( playerid, reason )
{
slotUsed[ playerid ] = 0;
return true;
}
Во во)
Где видели айпи в 60 символов? 16 максимум..)
Re: Защита флуда коннектами в один слот
Цитата:
Если во время атаки зайдёт игрок с таким же ID
то есть в слот который атакуют можно подключиться? я вот просто никогда не пользовался и не встречался с этим, мне оно нафиг просто не нужно).
Цитата:
+ char в 4 раза экономит нам память
это думаю каждый знает.
Re: Защита флуда коннектами в один слот
Спасибо.
Надеюсь мой сервер такая атака не постигнет в будущем но на всякий пожарный поставил.
Re: Защита флуда коннектами в один слот
Цитата:
Сообщение от
okstyle
и на ip надо выделять 64 ячейки, а не 16.
эм... "255.255.255.255" + '\0' = 16
проверку на ip можно убрать, так как слот уже зарезервирован ботом, поэтому левого игрока не забанит, так как ему достанется другой слот.