UnBlockIpAddress

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск
Add.png Данная функция была добавлена в SA-MP 0.3z R2-2 и не работает в более ранних версиях.


Описание:

Снимает блокировку с IP-адресов, заблокированных с помощью функции BlockIpAddress().

Параметры:

(ip_address[])
ip_address[] IP-адрес, для которого требуется отменить блокировку.


Возвращаемое значение:

1, если строка ip_address не пустая, иначе 0.

Info rhombus.png
Примечание
Функция снимает блокировку строго по той же строке ip_address, что была указана в BlockIpAddress(). Например, если заблокировать диапазон адресов по маске 127.0.0.*, а затем попытаться разблокировать только адрес 127.0.0.1, этот адрес останется заблокирован - обратно разблокировать можно будет только весь диапазон 127.0.0.*.


Bug.png
Баг SA-MP
Функция не проверяет должным образом содержимое строки ip_address и возвращает 0 только если строка пустая. Если передать функции неправильный IP-адрес, она всё равно вернёт 1.
Содержимое массива ip_address не изменяется во время работы функции, однако сам массив объявлен без атрибута const:
native UnBlockIpAddress(ip_address[]);
в то время, как правильный (const-корректный) заголовок функции должен выглядеть так:
native UnBlockIpAddress(const ip_address[]);
Если аргумент-массив объявлен без const, компилятор считает, что функция записывает в него данные, и потому не позволяет передавать в функцию неизменяемые массивы, выдавая ошибку несоответствия типов.
static const address[] = "127.0.0.1";
UnBlockIpAddress(address); // error 035: argument type mismatch (argument 1)


Пример использования:

CMD:unbanip(playerid, params[])
{
    if (0 == IsPlayerAdmin(playerid))
        return SendClientMessage(playerid, -1, "Вы не администратор!");
    if (isnull(params))
        return SendClientMessage(playerid, -1, "Использование: /unbanip [IP-адрес или маска]");
    UnBlockIpAddress(params);
    new string[64];
    format(string, sizeof(string), "Вы сняли блокировку с адреса \"%s\".", params);
    return SendClientMessage(playerid, -1, string);
}


См. также: