SAMP/BlockIpAddress
BlockIpAddress
✅ Функция работает только начиная с версии SA-MP 0.3z R2-2 и не будет работать в предыдущих версиях!
Описание:
Параметры:
| ip_address | IP-адрес, который нужно заблокировать. |
| timems | срок блокирования в миллисекундах (0 - вечно). |
Возвращаемые значения:
0: если IP-адрес не указан.
✍ Игроки, пытающиеся подключиться к серверу с заблокированным IP-адресом, получат универсальное сообщение «Вы заблокированы на этом сервере».
Заблокированные адреса не сохраняются в файл samp.ban, поэтому после перезапуска сервера все блокировки, созданные данной функцией, будут аннулированы. Тем не менее, блокировки остаются в силе после перезагрузки/смены мода без отключения процесса.
Функция не блокирует адрес 127.0.0.1. Скорее всего, это сделано чтобы предотвратить непреднамеренную блокировку NPC. Тем не менее, данный адрес можно заблокировать по маске: 127.0.0.*.
BlockIpAddress("6.9.*.*");
Заблокирует все IP-адреса, где первые два октета равны 6 и 9 соответственно.
Содержимое массива ip_address не изменяется во время работы функции, однако сам массив объявлен без атрибута const:
native BlockIpAddress(ip_address[], timems);
в то время, как правильный (const-корректный) заголовок функции должен выглядеть так:
native BlockIpAddress(const ip_address[], timems);
Если аргумент-массив объявлен без const, компилятор считает, что функция записывает в него данные, и потому не позволяет передавать в функцию неизменяемые массивы, выдавая ошибку несоответствия типов.
static const address[] = "127.0.0.1";
BlockIpAddress(address, 0); // error 035: argument type mismatch (argument 1)
Пример использования:
public OnRconLoginAttempt(ip[], password[], success)
{
if(!success) // неверный пароль
{
BlockIpAddress(ip, 60 * 1000); // заблокирует IP-адрес на минуту
}
return 1;
}
Связанные функции
Ban: банит игрока.
BanEx: банит игрока с причиной.
UnBlockIpAddress: разблокирует IP-адрес.
Связанные обратные вызовы
OnIncomingConnection: вызывается при попытке входящего соединения игрока к серверу.