Как получить список проводных подключений к локальной сети, игнорируя Wifi (беспроводное) подключение к локальной сети в C # - PullRequest
3 голосов
/ 21 декабря 2011

в C #, я хочу получить список подключений проводной локальной сети моего ноутбука во время выполнения, но я не хочу никакой беспроводной или беспроводной локальной сети.

Я использовал различные способы получения списка сети: -

ManagementClass:

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

Выше код не дает информации о типе сети (Wi-Fi или проводная)

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

Приведенный выше код дает мне список описания локальной сети Ethernet.даже NetworkInterfaceType для Wi-Fi LAN отображается как Ehternet, например: Тип: Ethernet Описание: Intel (R) Centrino (R) Ultimate-N 6300 AGN - минипорт планировщика пакетов

Я имею в виду, что нет способа определить, какой из нихбеспроводная или проводная сеть.

Я также пытался 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;
            }
        }

Любые рекомендации будут оценены.Спасибо

1 Ответ

3 голосов
/ 07 марта 2013
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");
    }
  }
}
...