2017-02-08 4 views
1

を経由して私は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; 

これは、ネットワークインターフェイスのリストを返します。問題は、これにInterfaces(Broadcom Family ...)の名前が含まれていることです。しかし、私のユーザーは、どのような種類のインターフェース(イーサネット、無線LAN、...)を理解していません。これは、どのタイプのネットワークインタフェースがこれであるかを知ることは可能ですか?どうすればいい?

答えて

3

すべてのネットワークインターフェイスを取得するために何を使用しているかわかりませんが、.NETにはNetworkInterfaceclassSystem.Net.NetworkInformationnamespaceにあります。

メソッドNetworkInterface.GetAllNetworkInterfaces()ですべてのインターフェイスを取得できます。

次に、どのようなインターフェイスを使用するのかを理解するには、NetworkInterfaceTypeプロパティを確認してください。それはenumなので、目的のために次のようなことをすることができます:

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