Ескертпе
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Жүйеге кіруді немесе каталогтарды өзгертуді байқап көруге болады.
Бұл бетке кіру үшін қатынас шегін айқындау қажет. Каталогтарды өзгертуді байқап көруге болады.
Функция 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 |