我想知道什么是有效的IPv4地址"位于win32 GetIpAddrTable
函数调用的 context 中。 documentation表示此功能不会在Vista及更高版本上返回无效的IPv4地址。它没有解释它如何确定有效性。
在Windows Server 2008和Windows Vista上,返回了IPv4地址 通过GetIpAddrTable函数不受媒体感知的影响 本地计算机上TCP / IP堆栈的功能。 GetIpAddrTable 函数仅返回有效的IPv4地址。
我正在深入研究一个问题,即对此函数的调用没有返回正常运行的适配器的地址。适配器使用驱动程序的DHCP服务器来分配链路本地IP地址。在大多数系统上,这很好。在特定的客户系统上,它没有。
Ping和流量测试工作正常,适配器显示在GetAdaptersAddresses
的输出中。我的另一个问题似乎表明唯一的区别应该是IPv6支持。有问题的适配器也会收到链接本地IPv6地址,但这不应该阻止它出现在GetIpAddrTable
输出中吗?
答案 0 :(得分:0)
简单答案:它完全按照它所说的做 - 它返回运行IPv4的连接接口。
我现在已经确认GetAdaptersAddresses在限制为IPv4接口时也会跳过我们的网络适配器。因此,在识别为IPv4接口时,驱动程序和Windows之间似乎存在问题。