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