getIpInterfaceEntry 函数 (netioapi.h)
GetIpInterfaceEntry 函数检索本地计算机上指定接口的 IP 信息。
语法
IPHLPAPI_DLL_LINKAGE _NETIOAPI_SUCCESS_ NETIOAPI_API GetIpInterfaceEntry(
[in, out] PMIB_IPINTERFACE_ROW Row
);
参数
[in, out] Row
指向 MIB_IPINTERFACE_ROW 结构的指针,该结构在成功返回时接收本地计算机上的接口的信息。 输入时,必须将MIB_IPINTERFACE_ROW的 InterfaceLuid 或 InterfaceIndex 成员设置为要为其检索信息的接口。
返回值
如果函数成功,则返回值NO_ERROR。
如果函数失败,则返回值为以下错误代码之一。
返回代码 | 说明 |
---|---|
|
系统找不到指定的文件。 如果由 Row 参数指向的MIB_IPINTERFACE_ROW的 InterfaceLuid 或 InterfaceIndex 成员指定的网络接口 LUID 或接口索引不是本地计算机上的值,则返回此错误。 |
|
向该函数传递了无效参数。 如果在 Row 参数中传递 NULL 指针,Row 参数所指向MIB_IPINTERFACE_ROW的 Family 成员未指定为 AF_INET 或 AF_INET6,或者 Row 参数指向的MIB_IPINTERFACE_ROW的 InterfaceLuid 或 InterfaceIndex 成员均未指定,则返回此错误。 |
|
找不到元素。 如果由 Row 参数指向的 MIB_IPINTERFACE_ROW 结构的 InterfaceLuid 或 InterfaceIndex 成员指定的网络接口与 MIB_IPINTERFACE_ROW 结构中的 Family 成员中指定的 IP 地址系列不匹配,则返回此错误。 |
|
使用 FormatMessage 函数获取返回错误的消息字符串。 |
注解
GetIpInterfaceEntry 函数在 Windows Vista 及更高版本上定义。
输入时,Row 参数指向的 MIB_IPINTERFACE_ROW 结构中的 Family 成员必须初始化为AF_INET或AF_INET6。 此外,在输入时,必须初始化指向 Row 参数的 MIB_IPINTERFACE_ROW 结构中的至少一个成员:InterfaceLuid 或 InterfaceIndex。
字段按上面列出的顺序使用。 因此,如果指定了 InterfaceLuid ,则使用此成员来确定接口。 如果未为 InterfaceLuid 成员设置值 (此成员的值设置为零) ,则接下来使用 InterfaceIndex 成员来确定接口。
在输出中,如果指定了 InterfaceIndex,则填充 Row 参数指向的 MIB_IPINTERFACE_ROW 结构的 InterfaceLuid 成员。 Row 参数指向的 MIB_IPINTERFACE_ROW 结构的其他成员也将填充。
InitializeIpInterfaceEntry 函数必须用于使用默认值初始化MIB_IPINTERFACE_ROW结构条目的字段。 然后,应用程序可以更改要修改 的MIB_IPINTERFACE_ROW 条目中的字段,然后调用 SetIpInterfaceEntry 函数。
无特权同时访问具有不同安全要求的多个网络会产生安全漏洞,并允许无特权应用程序意外地在两个网络之间中继数据。 典型示例是同时访问虚拟专用网络 (VPN) 和 Internet。 Windows Server 2003 和 Windows XP 使用弱主机模型,其中 RAS 通过增加所有默认路由的路由指标(超过其他接口)来阻止此类同时访问。 因此,所有流量都通过 VPN 接口路由,从而中断其他网络连接。
在 Windows Vista 及更高版本上,默认使用强主机模型。 如果使用 GetBestRoute2 或 GetBestRoute 在路由查找中指定了源 IP 地址,则路由查找仅限于源 IP 地址的接口。 RAS 的路由指标修改不起作用,因为潜在路由列表甚至没有 VPN 接口的路由,从而允许流量发往 Internet。 MIB_IPINTERFACE_ROW的 DisableDefaultRoutes 成员可用于在接口上使用默认路由禁用。 VPN 客户端可以将此成员用作安全措施,以在 VPN 客户端不需要拆分隧道时限制拆分隧道。 VPN 客户端可以调用 SetIpInterfaceEntry 函数,以便在需要时将 DisableDefaultRoutes 成员设置为 TRUE 。 VPN 客户端可以通过调用 GetIpInterfaceEntry 函数查询 DisableDefaultRoutes 成员的当前状态。
要求
要求 | 值 |
---|---|
最低受支持的客户端 | Windows Vista [仅限桌面应用] |
最低受支持的服务器 | Windows Server 2008 [仅限桌面应用] |
目标平台 | Windows |
标头 | netioapi.h (包括 Iphlpapi.h) |
Library | Iphlpapi.lib |
DLL | Iphlpapi.dll |