Бан по подсети
#1

Всем привет.
Система в принципе, почти готова. Но, не знаю как проверить при коннекте, начальные цифры ипа игрока, и если начальные цифры ип из `baniplist` (table) совпадает, ну, допустим (122.222.232.-), то игрока не пускаем на сервер.
Reply
#2

можно как-то так
PHP код:
new ip[16], str[7], ipr[4][4];
GetPlayerIp(playeridipsizeof(ip));
sscanf(ip"p<.>s[3]s[3]s[3]s[3]"ipr[0], ipr[1], ipr[2], ipr[3]);
format(strsizeof(str), "%s.%s"ipr[0], ipr[1]); 
Reply
#3

Не компилировал и не проверял, но идея ясна.

pawn Код:
new ip[16];
GetPlayerIp(playerid, ip, sizeof(ip));
new dotpos1 = strfind(ip, "."), string[16];
strins(string, 0, dotpos);
new dotpos2 = strfind(ip, ".", true, dotpos1 + 1);
strins(string, dotpos1, dotpos2);
if(strcmp(string, "123.123.", true) == 0)
{
    // do
}
И без всяких говносканфов.
Reply
#4

pawn Код:
bool:compareIpWithPattern(ip[], pattern[]) {
    for (new i, patternLen = strlen(pattern); i < patternLen; i++) {
        if (pattern[i] == '*') break;
        if (!ip[i]) return false;
        if (ip[i] != pattern[i]) return false;
    }
    return true;
}
Reply


Forum Jump:


Users browsing this thread: 1 Guest(s)