RtlIpv6AddressToStringEx 函数将 IPv6 地址、范围 ID 和端口号转换为字符串。
Syntax
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 地址的范围 ID。 此参数是可选的。
[in] Port
网络字节顺序格式的端口号。 此参数是可选的。
[out] AddressString
指向缓冲区的指针,用于接收 IP 地址、范围 ID 和端口的 NULL 终止字符串表示形式。 此缓冲区应足够大,可以容纳至少INET6_ADDRSTRLEN个字符。 INET6_ADDRSTRLEN值在 Ws2ipdef.h 头文件中定义。
[in, out] AddressStringLength
在输入时, AddressString 参数指向的缓冲区中适合的字符数,包括 NULL 终止符。 输出时,此参数包含实际写入 AddressString 参数指向的缓冲区的字符数。
返回值
如果函数成功,则返回值 STATUS_SUCCESS。
如果函数失败,则返回值为以下错误代码之一。
| 返回代码 | Description |
|---|---|
|
将无效参数传递给函数。 如果在 AddressString 或 AddressStringLength 参数中传递 NULL 指针,则返回此错误。 如果 AddressString 参数指向的缓冲区长度不够大,无法接收 IPv6 地址、范围 ID 和端口的字符串表示形式,也会返回此错误。 |
|
使用 FormatMessage 获取返回错误的消息字符串。 |
注解
RtlIpv6AddressToStringEx 函数用于将 IPv6 地址、范围 ID 和端口号转换为 Internet 格式的 IPv6 地址的字符串表示形式,后跟范围 ID 的字符串表示形式,后跟端口的字符串表示形式。 范围 ID 和端口号是可选参数。
返回的 IPv6 地址的基本字符串表示形式由 8 个十六进制数字组成,用冒号分隔。 连续零十六进制数字的字符串将替换为双冒号。 IPv6 地址的字符串表示形式中只能有一个双冒号。 如果地址是 IPv4 兼容的地址、IPv4 映射的 IPv6 地址或 ISATAP 地址,则最后 32 位以 IPv4 样式的点八进制表示法表示。 有关详细信息,请参阅 IETF 发布的 RFC 5942 的第 5 部分。
如果提供了范围 ID,则范围 ID 的字符串表示形式由百分比字符(“%”)与 IPv6 地址的字符串表示形式分隔开。 如果提供了端口号,则 IPv6 地址和范围 ID 的字符串表示形式用方括号括起来(前导“[”字符后跟 IPv6 地址后跟“% 字符,后跟带尾随”]“字符的范围 ID)。 端口号表示为后跟右方大括号字符的冒号,后跟十进制中端口号的字符串表示形式。
RtlIpv6AddressToStringEx 是一个便利函数,不需要加载 Windows 套接字 DLL 以访问 Windows 套接字中提供的函数以执行 IP 地址到字符串转换。
如果 AddressString 参数指向的缓冲区长度不够大,无法接收 IP 地址、范围 ID 和端口的字符串表示形式, RtlIpv6AddressToStringEx 将返回 ERROR_INVALID_PARAMETER 并将 AddressStringLength 参数设置为所需的缓冲区长度。
定义 UNICODE 或_UNICODE时, RtlIpv6AddressToStringEx 将定义为 RtlIpv6AddressToStringExW,即此函数的 Unicode 版本。 AddressString 参数定义为 PWSTR 数据类型。
如果未定义 UNICODE 和 _UNICODE,RtlIpv6AddressToStringEx 将定义为 RtlIpv6AddressToStringExA,这是此函数的 ANSI 版本。 AddressString 参数定义为 PSTR 数据类型。
IN6_ADDR结构在 In6addr.h 头文件中定义。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows Vista [桌面应用 |UWP 应用] |
| 支持的最低服务器 | Windows Server 2008 [桌面应用 |UWP 应用] |
| 目标平台 | Windows操作系统 |
| Header | ip2string.h (包括 Mstcpip.h) |
| Library | ntdll.lib |
| DLL | ntdll.dll |