Примечание.
Для доступа к этой странице требуется авторизация. Вы можете попробовать войти или изменить каталоги.
Для доступа к этой странице требуется авторизация. Вы можете попробовать изменить каталоги.
Функция RtlIpv4StringToAddress преобразует строковое представление IPv4-адреса в двоичный IPv4-адрес.
Синтаксис
NTSYSAPI NTSTATUS RtlIpv4StringToAddressA(
[in] PCSTR S,
[in] BOOLEAN Strict,
[out] PCSTR *Terminator,
[out] in_addr *Addr
);
Параметры
[in] S
Указатель на буфер, содержащий строковое представление IPv4-адреса, завершающего значение NULL.
[in] Strict
Значение, указывающее, должна ли строка быть адресом IPv4, представленным в строгой четырехкомпонентной нотации с точками десятичного разряда. Если этот параметр имеет значение TRUE, строка должна быть точечной десятичной с четырьмя частями. Если этот параметр имеет значение FALSE, допускается любое из четырех возможных форм с десятичной, восьмеричной или шестнадцатеричной нотацией. Дополнительные сведения см. в разделе "Примечания".
[out] Terminator
Параметр, получающий указатель на символ, завершающий преобразованную строку. Это можно использовать вызывающим методом для извлечения дополнительных сведений из строки.
[out] Addr
Указатель, в котором должно храниться двоичное представление IPv4-адреса.
Возвращаемое значение
Если функция выполнена успешно, возвращаемое значение STATUS_SUCCESS.
Если функция завершается ошибкой, возвращаемое значение является одним из следующих кодов ошибок.
| Код возврата | Description |
|---|---|
|
Недопустимый параметр был передан функции. Эта ошибка возвращается, если для параметра Strict задано значение TRUE, но строка, указываемая параметром S , не содержала четырехкомпонентное десятичное представление IPv4-адреса. Эта ошибка также возвращается, если строка, указываемая параметром S , не содержала правильное строковое представление адреса IPv4.
Этот код ошибки определен в файле заголовка Ntstatus.h. |
|
Используйте FormatMessage , чтобы получить строку сообщения для возвращаемой ошибки. |
Замечания
Функция RtlIpv4StringToAddress используется для преобразования строкового представления IPv4-адреса в IPv4-адрес, возвращаемый в сетевом порядке (байты, упорядоченные слева направо).
RtlIpv4StringToAddress — это удобная функция, которая не требует загрузки библиотеки DLL сокетов Windows для доступа к функции, предоставленной в сокетах Windows, для выполнения преобразования строк в IP-адрес.
Если для параметра Strict задано значение TRUE, строка, указываемая параметром S , должна находиться в строгой десятичной нотации. Для этого строгого формата необходимо указать четыре части. Каждая часть интерпретируется как десятичный байт данных и назначается слева направо на четыре байта IPv4-адреса.
Если для параметра Strict задано значение FALSE, строка, указываемая параметром S , может находиться в любом из нескольких возможных форматов. Если буфер, указывающий на параметр S , содержит строку адреса из трех частей, последняя часть интерпретируется как 16-разрядное количество и помещается в правое два байта сетевого адреса. Это упрощает трехкомпонентный формат адресов для указания сетевых адресов класса B как "128.net.host". Если буфер, указывающий на параметр S , содержит двухкомпонентную строку адреса, последняя часть интерпретируется как 24-разрядное количество и помещается в правое три байта сетевого адреса. Это делает формат двух частей удобным для указания сетевых адресов класса A как net.host. Если буфер, указывающий на параметр S , содержит только строку адреса с одной частью, значение хранится непосредственно в сетевом адресе без каких-либо байтовых перестроений.
При успешном выполнении параметр Terminator указывает на символ, завершающий преобразованную строку. Это позволяет приложению передавать строку, содержащую IP-адрес, а также дополнительные сведения функции RtlIpv4StringToAddress , а затем анализировать оставшиеся сведения.
При определении ЮНИКОДа или _UNICODE RtlIpv4StringToAddress определяется для RtlIpv4StringToAddressW, версия Юникода этой функции. Параметр S определяется для типа данных PCWSTR, а параметр Terminator определен для типа данных LPCWSTR.
Если и ЮНИКОД, и _UNICODE не определены, RtlIpv4StringToAddress определяется для RtlIpv4StringToAddressA, версия ANSI этой функции. Параметры S и Terminator определяются для типа данных PCSTR.
Структура IN_ADDR определена в файле заголовка Inaddr.h .
Замечание
Заголовок ip2string.h определяет RtlIpv4StringToAddress в качестве псевдонима, который автоматически выбирает версию ANSI или Юникод этой функции на основе определения константы препроцессора ЮНИКОДа. Сочетание использования псевдонима, нейтрального для кодирования, с кодом, не зависящим от кодирования, может привести к несоответствиям, которые приводят к ошибкам компиляции или среды выполнения. Дополнительные сведения см. в соглашениях о прототипах функций.
Требования
| Требование | Ценность |
|---|---|
| Минимальный поддерживаемый клиент | Windows Vista [классические приложения | Приложения UWP] |
| минимальный поддерживаемый сервер | Windows Server 2008 [классические приложения | Приложения UWP] |
| целевая платформа | Windows |
| Header | ip2string.h (include Mstcpip.h, Ip2string.h) |
| Library | ntdll.lib |
| DLL | ntdll.dll |