RtlIpv6AddressToStringA 函数 (ip2string.h)
RtlIpv6AddressToString 函数将 IPv6 地址转换为 Internet 标准格式的字符串。
语法
NTSYSAPI PSTR RtlIpv6AddressToStringA(
[in] const in6_addr *Addr,
[out] PSTR S
);
参数
[in] Addr
按网络字节顺序排列的 IPv6 地址。
[out] S
指向存储 IPv6 地址的 以 NULL 结尾的字符串表示形式的缓冲区的指针。 此缓冲区的大小应足以容纳至少 46 个字符。
返回值
指向在 IPv6 地址的字符串表示形式末尾插入的 NULL 字符的指针。 调用方可以使用它轻松地将更多信息追加到字符串。
注解
RtlIpv6AddressToString 函数用于将 IPv6 地址转换为 Internet 标准格式的 IPv6 地址的字符串表示形式。
基本字符串表示形式由 8 个用冒号分隔的十六进制数字组成。 由连续零数字的字符串替换为双冒号。 IPv6 地址的字符串表示形式中只能有一个双冒号。 如果地址是 IPv4 兼容地址、IPv4 映射的 IPv6 地址或 ISATAP 地址,则最后 32 位以 IPv4 样式的点位八进制表示法表示。 有关详细信息,请参阅 IETF 发布的 RFC 5942 的第 5 部分。
RtlIpv6AddressToString 是一个便捷函数,它不需要加载 Windows 套接字 DLL 即可访问 Windows 套接字中提供的函数,以执行 IP 地址到字符串的转换。
定义 UNICODE 或 _UNICODE 时, RtlIpv6AddressToString 将定义为 RtlIpv6AddressToStringW,即此函数的 Unicode 版本。 字符串参数 S 和函数返回值定义为 PWSTR 数据类型。
如果未定义 UNICODE 和 _UNICODE, 则 RtlIpv6AddressToString 将定义为 RtlIpv6AddressToStringA,即此函数的 ANSI 版本。 字符串参数 S 和函数返回值定义为 PSTR 数据类型。
IN6_ADDR 结构在 In6addr.h 头文件中定义。
包含 RtlIpv6AddressToString 函数的 导入库不包含在针对 Windows Vista 发布的 Microsoft Windows 软件开发工具包 (SDK) 中。 RtlIpv6AddressToString 函数包含在 Windows 驱动程序工具包 (WDK) 中包含的 Ntdll.lib 导入库中。 应用程序还可以使用 GetModuleHandle 和 GetProcAddress 函数从 Ntdll.dll 检索函数指针并调用此函数。
注意
ip2string.h 标头将 RtlIpv6AddressToString 定义为别名,该别名根据 UNICODE 预处理器常量的定义自动选择此函数的 ANSI 或 Unicode 版本。 将非特定编码别名与非非特定编码的代码混合使用可能会导致不匹配,从而导致编译或运行时错误。 有关详细信息,请参阅 函数原型的约定。
要求
最低受支持的客户端 | Windows Vista [桌面应用 | UWP 应用] |
最低受支持的服务器 | Windows Server 2008 [桌面应用 | UWP 应用] |
目标平台 | Windows |
标头 | ip2string.h (包括 Mstcpip.h、Ip2string.h) |
Library | ntdll.lib |
DLL | ntdll.dll |