Поделиться через


Функция RtlIpv4AddressToStringExW (ip2string.h)

Функция RtlIpv4AddressToStringEx преобразует IPv4-адрес и номер порта в строку в стандартном для Интернета формате.

Синтаксис

NTSYSAPI NTSTATUS RtlIpv4AddressToStringExW(
  [in]      const in_addr *Address,
  [in]      USHORT        Port,
  [out]     PWSTR         AddressString,
  [in, out] PULONG        AddressStringLength
);

Параметры

[in] Address

IPv4-адрес в порядке байтов сети.

[in] Port

Номер порта в формате порядка сетевых байтов. Этот параметр является необязательным.

[out] AddressString

Указатель на буфер для получения строкового представления IPv4-адреса и порта, завершаемого значением NULL. Этот буфер должен быть достаточно большим, чтобы вместить по крайней мере INET_ADDRSTRLEN символов. Значение INET_ADDRSTRLEN определяется в файле заголовка Ws2ipdef.h .

[in, out] AddressStringLength

На входных данных — количество символов, помещаемых в буфер, на который указывает параметр AddressString , включая признак конца NULL. В выходных данных этот параметр содержит количество символов, фактически записанных в буфер, на который указывает параметр AddressString .

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

Если функция выполняется успешно, возвращаемое значение будет STATUS_SUCCESS.

Если функция завершается сбоем, возвращаемое значение представляет собой один из следующих кодов ошибок.

Код возврата Описание
STATUS_INVALID_PARAMETER
В функцию передан недопустимый параметр. Эта ошибка возвращается, если в параметре AddressString или AddressStringLength передается указатель NULL. Эта ошибка также возвращается, если длина буфера, на который указывает параметр AddressString , недостаточно велика для получения строкового представления IPv4-адреса и порта.
Другое
Используйте FormatMessage , чтобы получить строку сообщения для возвращенной ошибки.

Комментарии

Функция RtlIpv4AddressToStringEx используется для преобразования IPv4-адреса и номера порта в строковое представление IPv4-адреса в интернет-пунктирном десятичном формате, за которым следует двоеточие и строковое представление порта.

RtlIpv4AddressToStringEx — это удобная функция, которая не требует загрузки библиотеки DLL windows для доступа к функции, предоставленной в windows Sockets, для выполнения преобразования IP-адреса в строку.

Если длина буфера, на который указывает параметр AddressString , недостаточно велика для получения строкового представления IPv4-адреса и порта, RtlIpv4AddressToStringEx возвращает ERROR_INVALID_PARAMETER и задает параметру AddressStringLength необходимую длину буфера.

Если определен юникод или _UNICODE, RtlIpv4AddressToStringEx определяется как RtlIpv4AddressToStringExW, версия Юникода этой функции. Параметр AddressString определяется для типа данных PWSTR.

Если и UNICODE, и _UNICODE не определены, RtlIpv4AddressToStringEx определяется как RtlIpv4AddressToStringExA, версия ANSI этой функции. Параметр AddressString определяется для типа данных PSTR.

Структура IN_ADDR определяется в файле заголовка Inaddr.h .

Библиотека импорта, содержащая функцию RtlIpv4AddressToStringEx, не включена в microsoft пакет средств разработки программного обеспечения для Windows (SDK), выпущенный для Windows Vista. Функция RtlIpv4AddressToStringEx включена в библиотеку импорта Ntdll.lib , включенную в комплект драйверов Windows (WDK). Приложение также может использовать функции GetModuleHandle и GetProcAddress для получения указателя функции из Ntdll.dll и вызова этой функции.

Требования

Требование Значение
Минимальная версия клиента Windows Vista [классические приложения | Приложения UWP]
Минимальная версия сервера Windows Server 2008 [классические приложения | Приложения UWP]
Целевая платформа Windows
Header ip2string.h (включая Mstcpip.h)
Библиотека ntdll.lib
DLL ntdll.dll

См. также раздел

GetModuleHandle

Функция GetProcAddress

InetNtop

InetPton

LoadLibrary

RtlIpv4AddressToString

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa