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


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

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

Синтаксис

NTSYSAPI NTSTATUS RtlIpv4StringToAddressExW(
  [in]  PCWSTR  AddressString,
  [in]  BOOLEAN Strict,
  [out] in_addr *Address,
  [out] PUSHORT Port
);

Параметры

[in] AddressString

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

[in] Strict

Значение, указывающее, должна ли строка быть адресом IPv4, представленным в строгой четырехкомпонентной нотации с точками десятичного разряда. Если этот параметр имеет значение TRUE, строка должна быть точечной десятичной с четырьмя частями. Если этот параметр имеет значение FALSE, любое из четырех форм допускается для строкового представления ipv4-адреса с десятичной, восьмеричной или шестнадцатеричной нотацией. Дополнительные сведения см. в разделе "Примечания".

[out] Address

Указатель, в котором должно храниться двоичное представление IPv4-адреса. Адрес IPv4 хранится в порядке байтов сети.

[out] Port

Указатель, в котором должно храниться двоичное представление номера порта. Номер порта возвращается в порядке байтов сети. Если порт не указан в строке, на которую указывает параметр AddressString , параметр Port имеет значение нулю.

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

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

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

Код возврата Description
СТАТУС_НЕДЕЙСТВИТЕЛЬНЫЙ_ПАРАМЕТР
Недопустимый параметр был передан функции. Эта ошибка возвращается, если для параметра Strict задано значение TRUE, но строка, указываемая параметром AddressString , не содержит четырехкомпонентное десятичное строковое представление IPv4-адреса. Эта ошибка также возвращается, если строка, на которую указывает параметр AddressString , не содержит правильное строковое представление адреса IPv4.

Этот код ошибки определен в файле заголовка Ntstatus.h.

Другое
Используйте FormatMessage , чтобы получить строку сообщения для возвращаемой ошибки.

Замечания

Функция RtlIpv4StringToAddressEx используется для преобразования строкового представления IPv4-адреса и номера порта в двоичный IPv4-адрес и номер порта. Адрес IPv4 возвращается в сетевом порядке (байты, упорядоченные слева направо). Номер порта возвращается в сетевом порядке.

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

Если для параметра Strict задано значение TRUE, строка, указываемая параметром AddressString , должна находиться в строгой нотации с точками в десятичной нотации. Для этого строгого формата необходимо указать четыре части. Каждая часть интерпретируется как десятичный байт данных и назначается слева направо на четыре байта IPv4-адреса.

Если для параметра Strict задано значение FALSE, строка, указываемая параметром AddressString , может находиться в любом из нескольких возможных форматов. Если буфер, на который указывает параметр AddressString , содержит строку адреса с тремя компонентами, последняя часть интерпретируется как 16-разрядное количество и помещается в правое два байта сетевого адреса. Это упрощает трехкомпонентный формат адресов для указания сетевых адресов класса B как "128.net.host". Если буфер, на который указывает параметр AddressString , содержит двухкомпонентную строку адреса, последняя часть интерпретируется как 24-разрядное количество и помещается в правое три байта сетевого адреса. Это делает формат двух частей удобным для указания сетевых адресов класса A как net.host. Если буфер, указывающий на параметр AddressString , содержит только строку адреса с одной частью, значение хранится непосредственно в сетевом адресе без каких-либо байтовых переупорядочений.

Буфер, на который указывает параметр AddressString , может содержать строку адреса IPv4, за которой следует необязательная двоеточие и строковое представление номера порта. Если строка номера порта включена в буфер, на который указывает параметр AddressString , в параметре Port возвращается двоичное представление номера порта. Если буфер, на который указывает параметр AddressString , не содержит номер порта, в параметре Port возвращается ноль.

При определении ЮНИКОДа или _UNICODE RtlIpv4StringToAddressEx определяется для RtlIpv4StringToAddressExW, версия Юникода этой функции. Параметр AddressString определен для типа данных PCWSTR.

Если и ЮНИКОД, и _UNICODE не определены, RtlIpv4StringToAddressEx определяется в RtlIpv4StringToAddressExA, версия ANSI этой функции. Параметр AddressString определяется для типа данных PCSTR.

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

Требования

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

См. также

GetModuleHandle

GetProcAddress

IN_ADDR

InetNtop

InetPton

LoadLibrary

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa