Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция 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 |