如何识别网络接口是LAN还是Wifi还是外部
问题描述:
我想区分系统中可用的以太网。 无论是LAN,Wifi还是VMWare创建的东西。 I am only intrested for LAN
。如何识别网络接口是LAN还是Wifi还是外部
但是,当我用下面的代码列举:
NetworkInterface[] adapters = NetworkInterface.GetAllNetworkInterfaces();
foreach (NetworkInterface networkInterface in adapters)
{
Console.WriteLine(" {0} ::: Interface Type {1} ::::ID {2} \n", networkInterface.Name, networkInterface.NetworkInterfaceType, networkInterface.Id);
}
现在我该如何区分作为NetworkInterface.Description
和NetworkInterface.NetworkInterfaceType
是没有用的。
还有其他办法吗?
答
看使用WMI检索系统上的网络适配器的详细信息。它会告诉你一个给定的适配器是否是有线网络适配器或无线网络,以及它是否确实是一个“物理”网络适配器。
http://geekswithblogs.net/PsychoCoder/archive/2008/01/25/using_wmi_in_csharp.aspx
http://msdn.microsoft.com/en-us/library/windows/desktop/aa394216(v=vs.85).aspx
答
要找出适配器是否可以使用MSNdis_PhysicalMediumType类在root \ WMI命名空间的WiFi适配器。
不幸的是,VMware适配器对Windows来说好像是“真正的”物理适配器,并且具有MAC地址和IP地址等,因此很难区分这些适配器。
如果您运行ncpa.cpl,您会发现在Windows中它们全都显示为与物理适配器相同。