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


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

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

Синтаксис

NTSYSAPI NTSTATUS RtlIpv6AddressToStringExW(
  [in]      const in6_addr *Address,
  [in]      ULONG          ScopeId,
  [in]      USHORT         Port,
  [out]     PWSTR          AddressString,
  [in, out] PULONG         AddressStringLength
);

Параметры

[in] Address

Адрес IPv6 в порядке байтов сети.

[in] ScopeId

Идентификатор области IPv6-адреса в порядке байтов сети. Это необязательный параметр.

[in] Port

Номер порта в формате порядка байтов сети. Это необязательный параметр.

[out] AddressString

Указатель на буфер для получения строкового представления IP-адреса, идентификатора области и порта, завершаемого значением NULL. Этот буфер должен быть достаточно большим, чтобы содержать по крайней мере INET6_ADDRSTRLEN символов. Значение INET6_ADDRSTRLEN определяется в файле заголовка Ws2ipdef.h .

[in, out] AddressStringLength

Во входных данных число символов, которые помещаются в буфер, на который указывает параметр AddressString , включая терминатор NULL. В выходных данных этот параметр содержит количество символов, фактически записанных в буфер, на который указывает параметр AddressString .

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

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

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

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

Замечания

Функция RtlIpv6AddressToStringEx используется для преобразования IPv6-адреса, идентификатора области и номера порта в строковое представление IPv6-адреса в формате Интернета, за которым следует строковое представление идентификатора области, за которым следует строковое представление порта. Идентификатор области и номер порта являются необязательными параметрами.

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

Если указан идентификатор области, строковое представление идентификатора области отделяется от строкового представления адреса IPv6 символом процента ("%". Если указан номер порта, строковое представление IPv6-адреса и идентификатора области окружены квадратными скобками (начальный символ "[", за которым следует IPv6-адрес, за которым следует символ "%", за которым следует идентификатор области с символом "]"). Номер порта представлен в виде двоеточия после правого квадратного скобка, за которым следует строковое представление номера порта в десятичном разряде.

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

Если длина буфера, на которую указывает параметр AddressString , недостаточно велика, чтобы получить строковое представление IP-адреса, идентификатора области и порта, RtlIpv6AddressToStringEx возвращает ERROR_INVALID_PARAMETER и задает параметр AddressStringLength требуемой длине буфера.

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

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

Структура 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

InetNtop

InetPton

LoadLibrary

RtlIpv4AddressToString

RtlIpv4AddressToStringEx

RtlIpv4StringToAddress

RtlIpv4StringToAddressEx

RtlIpv6AddressToString

RtlIpv6StringToAddress

RtlIpv6StringToAddressEx

inet_addr

inet_ntoa