RtlIpv4StringToAddressExA 函数 (ip2string.h)

RtlIpv4StringToAddressEx 函数将 IPv4 地址和端口号的字符串表示形式转换为二进制 IPv4 地址和端口。

Syntax

NTSYSAPI NTSTATUS RtlIpv4StringToAddressExA(
  [in]  PCSTR   AddressString,
  [in]  BOOLEAN Strict,
  [out] in_addr *Address,
  [out] PUSHORT Port
);

参数

[in] AddressString

指向缓冲区的指针,其中包含 IPv4 地址的 NULL 终止字符串表示形式,后跟端口号的可选冒号和字符串表示形式。

[in] Strict

一个值,该值指示字符串是否必须是以严格四部分点十进制表示法表示的 IPv4 地址。 如果此参数为 TRUE,则字符串必须用四个部分进行点数十进制。 如果此参数为 FALSE,则允许使用十进制、八进制或十六进制表示法的 Ipv4 地址的字符串表示形式中的任意四种形式。 有关详细信息,请参阅“备注”部分。

[out] Address

一个指针,其中存储 IPv4 地址的二进制表示形式。 IPv4 地址以网络字节顺序存储。

[out] Port

一个指针,其中要存储端口号的二进制表示形式。 端口号按网络字节顺序返回。 如果在 AddressString 参数指向的字符串中未指定任何端口,则 Port 参数设置为零。

返回值

如果函数成功,则返回值 STATUS_SUCCESS

如果函数失败,则返回值为以下错误代码之一。

返回代码 Description
STATUS_INVALID_PARAMETER

将无效参数传递给函数。 如果将 Strict 参数设置为 TRUE,则返回此错误,但 AddressString 参数指向的字符串不包含 IPv4 地址的四部分点十进制字符串表示形式。 如果 AddressString 参数指向的字符串不包含 IPv4 地址的正确字符串表示形式,也会返回此错误。

此错误代码在 Ntstatus.h 头文件中定义。

注解

RtlIpv4StringToAddressEx 函数用于将 IPv4 地址和端口号的字符串表示形式转换为二进制 IPv4 地址和端口号。 IPv4 地址按网络顺序返回(按从左到右排序的字节数)。 端口号按网络顺序返回。

RtlIpv4StringToAddressEx 是一种便利函数,它不需要加载 Windows 套接字 DLL 以访问 Windows 套接字中提供的函数以执行字符串到 IP 地址转换。

如果 Strict 参数设置为 TRUE,则 AddressString 参数指向的字符串必须采用严格的点十进制表示法。 此严格格式要求指定四个部分。 每个部分被解释为十进制字节的数据,并从左到右分配给 IPv4 地址的四个字节。

Strict 参数设置为 FALSE 时, AddressString 参数指向的字符串可能采用多种可能格式之一。 当 AddressString 参数指向的缓冲区包含由三部分构成的地址字符串时,最后一部分被解释为 16 位数量,并放置在网络地址最右侧的两个字节中。 这使得三部分地址格式便于将类 B 网络地址指定为“128.net.host”。

AddressString 参数指向的缓冲区包含由两部分构成的地址字符串时,最后一部分被解释为 24 位数量,并放置在网络地址最右侧的三个字节中。 这使得两部分地址格式便于将 A 类网络地址指定为“net.host”。 当 AddressString 参数指向的缓冲区仅包含一部分地址字符串时,该值直接存储在网络地址中,而无需重新排列任何字节。

AddressString 参数指向的缓冲区可能包含 IPv4 地址字符串,后跟可选冒号和端口号的字符串表示形式。 如果 AddressString 参数指向的缓冲区中包含端口号字符串,则会在 Port 参数中返回端口号的二进制表示形式。 如果 AddressString 参数指向的缓冲区不包含端口号,则会在 Port 参数中返回零。

定义 UNICODE 或_UNICODE时, RtlIpv4StringToAddressEx 将定义为 RtlIpv4StringToAddressExW,这是此函数的 Unicode 版本。 AddressString 参数定义为 PCWSTR 数据类型。

如果未定义 UNICODE 和 _UNICODE,RtlIpv4StringToAddressEx 将定义为 RtlIpv4StringToAddressExA,这是此函数的 ANSI 版本。 AddressString 参数定义为 PCSTR 数据类型。

IN_ADDR结构在 Inaddr.h 头文件中定义。

要求

Requirement 价值
最低支持的客户端 Windows Vista [桌面应用 |UWP 应用]
支持的最低服务器 Windows Server 2008 [桌面应用 |UWP 应用]
目标平台 Windows操作系统
Header ip2string.h (包括 Mstcpip.h)
Library ntdll.lib
DLL Ntdll.dll

另请参阅

GetModuleHandle
GetProcAddress
IN_ADDR
InetNtop
InetPton
LoadLibrary
RtlIpv4AddressToString
RtlIpv4AddressToStringEx
RtlIpv4StringToAddress
RtlIpv6AddressToString
RtlIpv6AddressToStringEx
RtlIpv6StringToAddress
RtlIpv6StringToAddressEx
inet_addr
inet_ntoa