SAMP/UnBlockIpAddress

Материал из Wiki.Pawno-Info.Ru
Перейти к навигации Перейти к поиску

UnBlockIpAddress

Wiki added.png

Добавлено

Функция работает только начиная с версии SA-MP 0.3z R2-2 и не будет работать в предыдущих версиях!


Описание:

Разблокирует IP-адрес, заблокированный функцией BlockIpAddress, для дальнейшего взаимодействия с сервером.


Параметры:

(ip_address[])


ip_addressIP-адрес, который надо разблокировать.


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

1: если строка с IP-адресом не пустая.
0: если IP-адрес не указан.


Wiki note.png

Примечание

Игроки, пытающиеся подключиться к серверу с заблокированным IP-адресом, получат универсальное сообщение «Вы заблокированы на этом сервере».


Wiki note important.png

Важное
примечание

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


Wiki tip.png

Подсказка

Функция работает и с подсетями. Для блокирования подсетей необходимо ввести:
BlockIpAddress("6.9.*.*");
Заблокирует все IP-адреса, где первые два октета равны 6 и 9 соответственно.


Wiki bug.png

Баг SA-MP

Функция не проверяет должным образом содержимое строки ip_address и возвращает 0 только если строка пустая. Если передать функции неправильный IP-адрес, она всё равно вернёт 1.
Содержимое массива ip_address не изменяется во время работы функции, однако сам массив объявлен без атрибута const:
native UnBlockIpAddress(ip_address[], timems);

в то время, как правильный (const-корректный) заголовок функции должен выглядеть так:

native UnBlockIpAddress(const ip_address[], timems);

Если аргумент-массив объявлен без const, компилятор считает, что функция записывает в него данные, и потому не позволяет передавать в функцию неизменяемые массивы, выдавая ошибку несоответствия типов.

static const address[] = "127.0.0.1";
UnBlockIpAddress(address); // error 035: argument type mismatch (argument 1)


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

public OnGameModeInit()
{
	UnBlockIpAddress("127.0.0.1");
	return 1;
}


Связанные функции

Следующие функции также могут быть полезны, поскольку они так или иначе связаны с рассматриваемой функцией.

Ban: банит игрока.
BanEx: банит игрока с причиной.
BlockIpAddress: разблокирует IP-адрес.


Связанные обратные вызовы

Следующие обратные вызовы также могут быть полезны, поскольку они так или иначе связаны с рассматриваемым обратным вызовом.

OnIncomingConnection: вызывается при попытке входящего соединения игрока к серверу.