GetAllNetworkInterfaces()返回一个不完整的列表

时间:2014-09-02 13:22:17

标签: c# network-programming

NetworkInterface.GetAllNetworkInterfaces()没有返回完整的列表, 当我转到网络设备,并使用属性我禁用互联网协议版本4(TCP / IPv4)复选框,GetAllNetworkInterfaces停止识别该设备。 我发现这很奇怪,因为虽然此后设备不具备互联网能力(我们仍然可能有IPv6,但为了论证)它仍然是一个网络设备 有人可以解释一下,或者说明如何解决这个问题?

1 个答案:

答案 0 :(得分:1)

经过一段时间的搜索后,我发现可以使用以下方法访问完整列表:

        SelectQuery wmiQuery = new SelectQuery("SELECT * FROM Win32_NetworkAdapter");
        ManagementObjectSearcher searchProcedure = new ManagementObjectSearcher(wmiQuery);
        foreach (ManagementObject networkAdapter in searchProcedure.Get())
        {
            //here do whatever you want to do to the adapter
        }

可以在(不是C#特定的)找到更一般的描述: http://msdn.microsoft.com/en-us/library/aa394216(v=vs.85).aspx

同样在C#中确保引用System.Management,否则你将无法使用上面的代码