RtlIpv6StringToAddressEx 函数将 IPv6 地址、范围 ID 和端口号的字符串表示形式转换为二进制 IPv6 地址、范围 ID 和端口。
Syntax
NTSYSAPI NTSTATUS RtlIpv6StringToAddressExA(
[in] PCSTR AddressString,
[out] in6_addr *Address,
[out] PULONG ScopeId,
[out] PUSHORT Port
);
参数
[in] AddressString
指向缓冲区的指针,其中包含 IPv6 地址、范围 ID 和端口号的 NULL 终止字符串表示形式。
[out] Address
一个指针,其中存储 IPv6 地址的二进制表示形式。
[out] ScopeId
指向存储 IPv6 地址的范围 ID 的指针。 如果 AddressString 参数不包含范围 ID 的字符串表示形式,则此参数中返回零。
[out] Port
存储端口号的指针。 端口号采用网络字节顺序格式。 如果 AddressString 参数不包含端口号的字符串表示形式,则此参数中返回零。
返回值
如果函数成功,则返回值 STATUS_SUCCESS。
如果函数失败,则返回值为以下错误代码之一。
| 返回代码 | Description |
|---|---|
|
将无效参数传递给函数。 如果 AddressString 参数指向的字符串不包含 IPv6 地址的正确字符串表示形式,则返回此错误。
此错误代码在 Ntstatus.h 头文件中定义。 |
|
使用 FormatMessage 获取返回错误的消息字符串。 |
注解
RtlIpv6StringToAddressEx 函数用于将 IPv6 地址、范围 ID 和端口号的字符串表示形式转换为二进制 IPv6 地址、范围 ID 和端口号。 IPv6 地址按网络顺序返回(按从左到右排序的字节数)。 端口号和范围 ID 按网络顺序返回。
RtlIpv6StringToAddressEx 是一种便利函数,它不需要加载 Windows 套接字 DLL 以访问 Windows 套接字中提供的函数以执行字符串到 IP 地址转换。
AddressString 参数指向的字符串必须以 IPv6 地址字符串的形式表示,后跟可选百分比字符和范围 ID 字符串。 IPv6 地址和范围 ID 字符串必须括在方括号中。 IPv6 地址和范围 ID 字符串后面的右方括号可能后跟可选冒号和端口号的字符串表示形式。 IPv6 地址的基本字符串表示形式由 8 个十六进制数字组成,用冒号分隔。 连续零个数字的字符串可以替换为双冒号。 IPv6 地址的字符串表示形式中只能有一个双冒号。 如果地址是 IPv4 兼容的地址、IPv4 映射的 IPv6 地址或 ISATAP 地址,则最后 32 位可以表示为 IPv4 样式的 dotted-octet 表示法。 有关详细信息,请参阅 IETF 发布的 RFC 5942 的第 5 部分。
定义 UNICODE 或_UNICODE时, RtlIpv6StringToAddressEx 将定义为 RtlIpv6StringToAddressExW(此函数的 Unicode 版本)。 AddressString 参数定义为 PCWSTR 数据类型。
如果未定义 UNICODE 和 _UNICODE,RtlIpv6StringToAddressEx 将定义为 RtlIpv6StringToAddressExA,这是此函数的 ANSI 版本。 AddressString 参数定义为 PCSTR 数据类型。
IN6_ADDR结构在 In6addr.h 头文件中定义。
要求
| Requirement | 价值 |
|---|---|
| 最低支持的客户端 | Windows Vista [桌面应用 |UWP 应用] |
| 支持的最低服务器 | Windows Server 2008 [桌面应用 |UWP 应用] |
| 目标平台 | Windows操作系统 |
| Header | ip2string.h (包括 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