[Ayuda]Maximo de users por ip
#1

como puedo hacer para que solo puedan entrar 1 user al servidor por cada ip? necesito ayuda me lanzan queryflood y udpflood y no se como arreglarlo necesito ayuda
Reply
#2

pawn Код:
#define MAX_IPS    (2)
new IP[MAX_PLAYERS][16];

public OnPlayerConnect(playerid)
{
    MaxIP(playerid);
    return 1;
}

stock MaxIP(playerid)
{
    new contador;
    GetPlayerIp(playerid, IP[playerid], 16);
    for(new user; user<GetMaxPlayers(); user++)
    {
        if(IsPlayerConnected(user))
        {
            if(!strcmp(IP[playerid], IP[user]))
            {
                contador++;
            }
        }
        if(contador>=MAX_IPS)
        {
            Kick(playerid);
        }
    }
    return 1;
}
(Lo saquй de aquн https://sampforum.blast.hk/showthread.php?tid=362608)
Reply
#3

Quote:
Originally Posted by Zume-Zero
Посмотреть сообщение
pawn Код:
#define MAX_IPS    (1)
new IP[MAX_PLAYERS][16];

public OnPlayerConnect(playerid)
{
    MaxIP(playerid);
    return 1;
}

stock MaxIP(playerid)
{
    new contador;
    GetPlayerIp(playerid, IP[playerid], 16);
    for(new user; user<GetMaxPlayers(); user++)
    {
        if(IsPlayerConnected(user))
        {
            if(!strcmp(IP[playerid], IP[user]))
            {
                contador++;
            }
        }
        if(contador>=MAX_IPS)
        {
            Kick(playerid);
        }
    }
    return 1;
}
(Lo saquй de aquн https://sampforum.blast.hk/showthread.php?tid=362608)
eso no es recomendable, por que si varios usuarios estan en la misma red local solo dejara entrar a uno :S XDD..
Reply
#4

Eso es lo que pidiу el creador del tema, cierto Otacon?
Reply
#5

El de zume sirve, tambiйn en la carpeta filterscripts hay un fs por defecto llamado maxips.pwn, ese igual es bueno, podrнas usarlo
Reply
#6

pawn Код:
native gpci ( playerid, serial [ ], maxlen );
#include <a_samp>
static SERIAL[MAX_PLAYERS][25];

public OnPlayerConnect(playerid){
    MaxUser(playerid);
    return true;
}

stock MaxUser(playerid){
    gpci(playerid,SERIAL[playerid],24);
    for(new player, user = GetMaxPlayers(); player != user; player++){
        if(IsPlayerConnected(player) && (player!=playerid)){
            if(!strcmp(SERIAL[playerid], SERIAL[player], true, 24)){Kick(playerid);} }
    } return true;
}
Reply
#7

Ese es un mйtodo bastante lento. Es definitivamente mejor, por lejos, usar hash.
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)