首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >如何在C#中获得忽略无线局域网连接的有线局域网连接列表

如何在C#中获得忽略无线局域网连接的有线局域网连接列表
EN

Stack Overflow用户
提问于 2011-12-21 06:09:53
回答 1查看 3.6K关注 0票数 3

在C#中,我想在运行时获得我的笔记本电脑的有线局域网连接列表,但我不想要任何wifi或无线局域网。

我用各种方法获取网络列表:-

ManagementClass

代码语言:javascript
复制
ManagementClass objMC = new ManagementClass("Win32_NetworkAdapterConfiguration");
 ManagementObjectCollection objMOC = objMC.GetInstances();

 foreach (ManagementObject objMO in objMOC)
        {
            if (!(bool)objMO["ipEnabled"])
                continue;
           this.textBox1.Text += (Convert.ToString(objMO["Description"])) + Environment.NewLine;
        }

以上代码不提供关于网络类型(wifi或有线)的信息。

NetworkInterface类:

代码语言:javascript
复制
foreach (NetworkInterface nic in NetworkInterface.GetAllNetworkInterfaces())

        {
            this.textBox1.Text += nic.Name.ToString();    

            this.textBox1.Text += "MAC: " + nic.GetPhysicalAddress().ToString();

            this.textBox1.Text += "Type: " + nic.NetworkInterfaceType;
            this.textBox1.Text += "Description: " + nic.Description.ToString();
            this.textBox1.Text += "OperationalStatus: " + nic.OperationalStatus.ToString() + ;
        }

上面的代码给出了以太网局域网的描述列表。甚至wifi局域网的NetworkInterfaceType也显示为Ehternet,例如:类型:以太网描述: Intel(R) Centrino(R)终极-N 6300 AGN -分组调度器微型端口

我的意思是没有办法区分哪一个是无线网络还是有线网络。

我也尝试过NativeWifi.WlanClient,,但它崩溃了。

代码语言:javascript
复制
  Wlan.WlanAvailableNetwork[] networks = wlanIface.GetAvailableNetworkList(0);
        foreach (Wlan.WlanAvailableNetwork network in networks)
        {   
            if (network.dot11DefaultCipherAlgorithm == Wlan.Dot11CipherAlgorithm.WEP)
            {
                this.textBox1.Text = string.Format("Found WEP network with SSID {0}: ", GetStringForSSID(network.dot11Ssid)) + Environment.NewLine;
            }
        }

如有任何指导,将不胜感激。谢谢

EN

回答 1

Stack Overflow用户

发布于 2013-03-07 16:52:50

代码语言:javascript
复制
NetworkInterface[] nics=NetworkInterface.GetAllNetworkInterfaces();

foreach(NetworkInterface adapter in nics)
{
  if(adapter.OperationalStatus==OperationalStatus.Up)
  {
    if(adapter.NetworkInterfaceType==NetworkInterfaceType.Wireless80211)
    {
      Console.WriteLine("Wifi");
    }
    else
    {
      Console.WriteLine("do your work");
    }
  }
}
票数 5
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/8585738

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档