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


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

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

Синтаксис

NTSYSAPI NTSTATUS RtlIpv6StringToAddressExW(
  [in]  PCWSTR   AddressString,
  [out] in6_addr *Address,
  [out] PULONG   ScopeId,
  [out] PUSHORT  Port
);

Параметры

[in] AddressString

Указатель на буфер, содержащий строковое представление адреса IPv6, идентификатора области и номера порта, завершаемого значением NULL.

[out] Address

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

[out] ScopeId

Указатель на место хранения идентификатора области IPv6-адреса. Если параметр AddressString не содержит строковое представление идентификатора области, в этом параметре возвращается ноль.

[out] Port

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

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

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

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

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

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

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

Замечания

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

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

Строка, на которую указывает параметр AddressString , должна быть представлена в форме строки адреса IPv6, за которой следует необязательный символ и строка идентификатора области. Строка идентификатора IPv6-адреса и области должна быть заключена в квадратные скобки. За правой квадратной скобкой после строки идентификатора IPv6-адреса и области может следовать необязательная двоеточие и строковое представление номера порта. Базовое строковое представление IPv6-адреса состоит из 8 шестнадцатеричных чисел, разделенных двоеточиями. Строка последовательных нулевых чисел может быть заменена двойной двоеточием. В строковом представлении IPv6-адреса может быть только одна двойная двоеточие. Последние 32 бита могут быть представлены в iPv4-style dotted-octet нотации, если адрес является IPv4-совместимым адресом, IPv4-сопоставленным IPv6-адресом или адресом ISATAP. Дополнительные сведения см. в разделе 5 RFC 5942 , опубликованном IETF.

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

Если юникод и _UNICODE не определены, RtlIpv6StringToAddressEx определяется в RtlIpv6StringToAddressExA, версия ANSI этой функции. Параметр AddressString определяется для типа данных PCSTR.

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

Требования

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

См. также

GetModuleHandle

GetProcAddress

IN6_ADDR

InetNtop

InetPton

LoadLibrary

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6AddressToStringEx

RtlIpv6StringToAddress

inet_addr

inet_ntoa