.net - 如何在 C# 中获取忽略 Wifi(无线)LAN 连接的有线 LAN 连接列表

标签 .net wifi wireless lan

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

我使用了多种方法来获取网络列表:-

管理类:

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 类:

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() + ;
        }

上面的代码给出了以太网 LAN 描述的列表。 甚至 Wifi LAN 的 NetworkInterfaceType 也显示为 Ehternet,例如: 类型:以太网 描述:Intel(R) Centrino(R) Ultimate-N 6300 AGN - Packet Scheduler Miniport

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

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

  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;
            }
        }

任何指导将不胜感激。 谢谢

最佳答案

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");
    }
  }
}

关于.net - 如何在 C# 中获取忽略 Wifi(无线)LAN 连接的有线 LAN 连接列表,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8585738/

相关文章:

python - 使用 Python 创建 WPA 消息完整性代码 (MIC)

Java ArrayList Contains()方法不起作用

c# - MigraDoc:在横向和纵向页面上居中放置水印

.NET Core : What does MethodImplOptions. Aggressive Optimization 到底做了什么?

Android - 检测 Wifi 是否需要浏览器登录

基于 iPhone 室内位置的应用程序

c - 使用 wireless.h 的 C 语言中的无线 ESSID 和信号强度

c# - ASP.NET UDP 套接字代码适用于开发,但不适用于 IIS 的生产

c# - 如何将其写入 linq to object 查询?

android - Wi-Fi Direct 和 "normal"Wi-Fi - 不同的 MAC?