使用简单的 Java 类获取 Windows 2008 R2 Server Core 机器上的网络接口列表会返回数百个结果。
正在使用的示例代码是每个教程:http ://docs.oracle.com/javase/tutorial/networking/nifs/listing.html
在 Windows 2008 Server Core R2 上,为注册表项生成了数百个 GUID:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}
Sample:
[HKEY_LOCAL_MACHINE\SYSTEM\CurrentControlSet\Control\Network\{4D36E972-E325-11CE-BFC1-08002BE10318}\{001E146A-E6BB-424E-ACD9-156527A67C59}\Connection]
"DefaultNameResourceId"=dword:00000709
"DefaultNameIndex"=dword:00000247
"Name"="Local Area Connection* 583"
其中有数百个,GetNetworkInterfaces 将它们全部列出 - 例如,对于上面的一个,它显示“Name=net583”。这些不是实际的网络接口,处理所有这些需要很长时间。
安装 SP1 会阻止生成更多的 GUID,但即使我从注册表中删除了不需要的 GUID,GetNetworkInterfaces 仍然列出它们。
除了上面 GetNetworkInterfaces() 检索有关网络接口信息的注册表项之外,Windows 机器上还有其他地方吗?
我们有一个使用 GetNetworkInterfaces 的 Web 应用程序,由于处理所有这些不存在的网络接口的延迟,Web 服务器可能需要长达 10 分钟才能启动。