0

我想知道在 win32函数调用的上下文中什么是“有效的 IPv4 地址”。文档表明此函数在 Vista 及更高版本上不会返回无效的 IPv4 地址GetIpAddrTable。它没有解释它如何确定有效性。

在 Windows Server 2008 和 Windows Vista 上,GetIpAddrTable 函数返回的 IPv4 地址不受本地计算机上 TCP/IP 堆栈的媒体感知功能的影响。GetIpAddrTable 函数只返回有效的 IPv4 地址。

我正在研究一个问题,即对该函数的调用未返回正常工作的适配器的地址。适配器使用驱动程序的 DHCP 服务器来分配链路本地 IP 地址。在大多数系统上,这工作正常。在特定的客户系统上,它没有。

Ping 和流量测试工作正常,适配器显示在GetAdaptersAddresses. 我的另一个问题似乎表明唯一的区别应该是 IPv6 支持。有问题的适配器也接收到链接本地 IPv6 地址,但这不应该阻止它出现在GetIpAddrTable输出中吗?

交叉引用

4

1 回答 1

0

简单的回答:它完全按照它所说的去做——它返回运行 IPv4 的连接接口。

我现在已经确认 GetAdaptersAddresses 在限制为 IPv4 接口时也会跳过我们的网络适配器。因此,驱动程序和 Windows 在识别为 IPv4 接口时似乎存在问题。

于 2012-11-30T20:25:57.623 回答