getIpNetTable 函数 (iphlpapi.h)

GetIpNetTable 函数检索 IPv4 到物理地址映射表。

语法

IPHLPAPI_DLL_LINKAGE ULONG GetIpNetTable(
  [out]     PMIB_IPNETTABLE IpNetTable,
  [in, out] PULONG          SizePointer,
  [in]      BOOL            Order
);

参数

[out] IpNetTable

指向缓冲区的指针,该缓冲区接收 IPv4 到物理地址映射表作为 MIB_IPNETTABLE 结构。

[in, out] SizePointer

输入时,指定 pIpNetTable 参数指向的缓冲区的大小(以字节为单位)。

在输出中,如果缓冲区的大小不足以容纳返回的映射表,则函数会将此参数设置为等于所需的缓冲区大小(以字节为单位)。

[in] Order

一个布尔值,指定是否应按 IP 地址按升序对返回的映射表进行排序。 如果此参数为 TRUE,则对表进行排序。

返回值

如果函数成功,则返回值为NO_ERROR或ERROR_NO_DATA。

如果函数失败或未返回任何数据,则返回值是以下错误代码之一。

返回代码 说明
ERROR_INSUFFICIENT_BUFFER
pIpNetTable 参数指向的缓冲区不够大。 所需大小在 pdwSize 参数指向的 DWORD 变量中返回。
ERROR_INVALID_PARAMETER
向该函数传递了无效参数。 如果 pdwSize 参数为 NULL,或者 GetIpNetTable 无法写入 pdwSize 参数指向的内存,则返回此错误。
ERROR_NO_DATA
没有要返回的数据。 IPv4 到物理地址的映射表为空。 此返回值表示对 GetIpNetTable 函数的调用成功,但没有要返回的数据。
ERROR_NOT_SUPPORTED
未在本地计算机上配置 IPv4 传输。
其他
使用 FormatMessage 获取返回错误的消息字符串。

注解

The
GetIpNetTable 函数枚举本地系统上从 IPv4 到物理地址映射表的地址解析协议 (ARP) 条目,并在 MIB_IPNETTABLE 结构中返回此信息。

IPv4 地址条目在 pIpNetTable 参数指向的缓冲区中的MIB_IPNETTABLE结构中返回。 MIB_IPNETTABLE 结构包含每个 IPv4 地址条目的 ARP 条目计数和MIB_IPNETROW结构的数组。

请注意,由 pIpNetTable 参数指向的返回MIB_IPNETTABLE结构可能包含用于在 dwNumEntries 成员与MIB_IPNETTABLE结构的成员中的第一个MIB_IPNETROW数组条目之间对齐的填充。 MIB_IPNETROW 数组条目 之间还可能存在对齐的填充。 对 MIB_IPNETROW 数组条目的任何访问都应假定可能存在填充。

在 Windows Vista 及更高版本中, GetIpNetTable2 函数可用于检索 IPv6 和 IPv4 的邻居 IP 地址。

要求

要求
最低受支持的客户端 Windows 2000 Professional [仅限桌面应用]
最低受支持的服务器 Windows 2000 Server [仅限桌面应用]
目标平台 Windows
标头 iphlpapi.h
Library Iphlpapi.lib
DLL Iphlpapi.dll

另请参阅

CreateIpNetEntry

DeleteIpNetEntry

FlushIpNetTable

GetIpNetTable2

IP 帮助程序函数参考

IP 帮助程序起始页

MIB_IPNETROW

MIB_IPNETTABLE

SetIpNetEntry