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


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

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

Синтаксис

NTSYSAPI NTSTATUS RtlIpv4AddressToStringExA(
  [in]      const in_addr *Address,
  [in]      USHORT        Port,
  [out]     PSTR          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, для выполнения преобразования IP-адресов в строки.

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

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

Если юникод и _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)
DLL Ntdll.dll

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

GetModuleHandle
Функция GetProcAddress
InetNtop
InetPton
LoadLibrary
RtlIpv4AddressToString
RtlIpv4StringToAddress
RtlIpv4StringToAddressEx
RtlIpv6AddressToString
RtlIpv6AddressToStringEx
RtlIpv6StringToAddress
RtlIpv6StringToAddressEx
inet_addr
inet_ntoa