NetStats_GetIpPort

Материал из Pro-Pawn Wiki
Перейти к: навигация, поиск

Описание:

Узнаёт IP-адрес игрока и номер порта, по которому он подключен.

Параметры:

(playerid, ip_port[], ip_port_len)
playerid ID игрока, IP-адрес и порт которого требуется узнать.
ip_port[] Массив, в котором будет записан адрес и номер порта.
ip_port_len Размер массива ip_port.


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

Возвращает длину строки с IP-адресом и портом игрока, либо -1, если игрок не подключен.

Info rhombus.png
Примечание
Максимальный размер строки с IP-адресом и портом - 22 символа (с учётом завершающего '\0').


Bug.png
Баг SA-MP
Если размер массива ip_port (аргумент ip_port_len) меньше, чем длина строки с IP-адресом и портом + 1 ячейка, символ конца строки '\0' записывается за пределами массива.
Для параметра ip_port_len разработчики SA-MP могли бы указать значение по умолчанию, равное размеру передаваемого массива ip_port, чтобы у скриптеров не было необходимости каждый раз указывать размер вручную
native NetStats_GetIpPort(playerid, ip_port[], ip_port_len=sizeof(ip_port));
однако по неизвестной причине в SA-MP Team избегают использования оператора sizeof.


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

public OnPlayerConnect(playerid)
{
    new name[MAX_PLAYER_NAME + 1], ip_port[22];
    GetPlayerName(playerid, name, sizeof(name));
    NetStats_GetIpPort(playerid, ip_port, sizeof(ip_port));
    // Пример вывода: "Подключен игрок #10 John_Doe (127.0.0.1:55000)"
    printf("Подключен игрок #%d %s (%s)", playerid, name, ip_port);
}


См. также: