通过 C# 获取网络接口的类型



我正在通过 C# 查询计算机的网络接口,如下所示:

var interfaces = new List<string>();
var mc = new ManagementClass("Win32_NetworkAdapterConfiguration");
var moc = mc.GetInstances();
foreach (ManagementObject mo in moc)
{
    if (!(bool)mo["ipEnabled"])
        continue;
    string desc = (string) (mo["Description"]);
    interfaces.Add(desc);
 }
 return interfaces;

这将返回包含网络接口的列表。问题是它包含接口的名称(Broadcom 系列...但是我的用户不明白这是什么类型的接口(以太网,wifi,...是否可以确定这是什么类型的网络接口?我该怎么做?

不确定您使用什么来获取所有网络接口,但在 .NET 中,我们在 System.Net.NetworkInformation namespaceNetworkInterface class

您可以使用方法 NetworkInterface.GetAllNetworkInterfaces() 获取所有接口。

然后要了解您获得的界面类型,您可以检查NetworkInterfaceType属性。这很enum,所以为了你的目的,你可以做这样的事情:

foreach (NetworkInterface netInterface in NetworkInterface.GetAllNetworkInterfaces())
{
    if (netInterface.NetworkInterfaceType == NetworkInterfaceType.Wireless80211 
        || netInterface.NetworkInterfaceType == NetworkInterfaceType.Ethernet)
    {
        //your logic here
    }
}

最新更新