[Ajuda] Bloquear faixa de ip
#1

Galera, queria saber como faзo pra bloquear uma faixa de ip da seguinda forma:

Supondo que o ip seja 127.0.0.1, eu queria bloquear apenas o primeiro e o segundo prefixo, bloquando portanto qualquer ip que entrasse com a faixa 127.0, como eu posso fazer isso?
Reply
#2

Funзгo --- GetIPAsArray
http://forum.sa-mp.com/showpost.php?...postcount=1995

pawn Код:
#define MAX_PLAYER_IP 20

static
    bruno_lindo [ MAX_PLAYER_IP ],
    bruno_array [ 4 ];

GetPlayerIp(playerid, bruno_lindo , MAX_PLAYER_IP )
GetIPAsArray( bruno_lindo , bruno_array );

format(bruno_lindo, MAX_PLAYER_IP ,  "ban %d.%d.*.*",  bruno_array[0] , bruno_array[1]);

SendRconCommand(bruno_lindo);
Reply
#3

ban 127.* acho que й assim
Reply
#4

Quote:
Originally Posted by StreetGT
Посмотреть сообщение
ban 127.* acho que й assim
Sim. A estб parte й referente a rede, o problema й que fazendo isto a probabilidade de vocк pegar algum jogador inocente й muito alta :

Й de 128 para 239, o que seria uma mйdia de caso 111 jogadores 1 serб banido erroneamente. Й aconselhбvel usar as duas primeiras partes, assim o valor й aumentado de 1 em 239І - 128І. Isto й em media de 1 em 40 mil .. Mas isto nгo й totalmente eficaz, pois um jogador facilmente muda toda sua faixa de IP. Incluindo a rede que й a primeira parte do endereзo Por isto aconselho criar uma funзгo "GetPlayerSerialHD"
Reply
#5

Bruno na verdade eu tava querendo um sistema para um ip especifico, modifiquei seu sistema para:

pawn Код:
GetPlayerIp(playerid, bruno_lindo, MAX_PLAYER_IP);
    GetIPAsArray(bruno_lindo, bruno_array);
    if(bruno_array[0]==127 && bruno_array[1]==0)
    {
        Kick(playerid);
    }
E nгo funcionou '-'
Reply
#6

127.0.0.1 й o IP do prуprio servidor, local.
Reply
#7

isso foi uma suposiзгo '-'
Reply
#8

Suposiзгo?

Enfim. Imprima com printf os valores da array com os valores do ip do jogador e mostre aqui o que retorna
Reply
#9

Isso pode ser feito com a funзгo strfind :


pawn Код:
public OnPlayerConnect(playerid)
{
    new IP[16];
    GetPlayerIp(playerid, IP, 16);
    if(!strfind(IP, "127.0."))
    {
        Kick(playerid);
    }
    return 1;
}

O cуdigo acima, por exemplo, daria um kick no jogador se seu IP comeзasse com "127.0." .



Espero ter ajudado .
Reply
#10

Exatamente Ken. Mas caso ele quer banir aquele ip. Use o cуdigo que postei.


Alias, use o cуdigo que eu fiz para BANIR. Caso jб estiver banido, vocк vai no samp.ban e adiciona
Quote:

127.0.*.*

Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)