2012-11-29 17 views
5

Próbuję wykryć rodzaj połączenia sieciowego, z którym jestem połączony. czy to WiFi czy 3G? jest sposób to zrobić przy użyciu formularzy C# win .net 2.0 lub 4.0?Czy istnieje sposób na wykrycie, jakiego rodzaju połączenia używam? WiFi, 3G lub Ethernet?

 foreach (NetworkInterface adapter in adapters) 
     { 
      if (adapter.OperationalStatus == OperationalStatus.Up) 
      { 
       if (adapter.NetworkInterfaceType == NetworkInterfaceType.Wireless80211) 
       { 
        lblNetworkType.Text = "you are using WiFi"; 
        break; 
       } 
       else if (adapter.NetworkInterfaceType == NetworkInterfaceType.Ppp) 
       { 
        lblNetworkType.Text = "you are using 3G or ADSL or Dialup"; 
        break; 
       } 
       else if (adapter.NetworkInterfaceType == NetworkInterfaceType.Ethernet) 
       { 
        lblNetworkType.Text = "you are using Ethernet"; 
        break; 
       } 
      } 
     } 
+0

Myślę, że będziesz musiał sprawdzić z enums [NetworkInterfaceType] (http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterfacetype%28v=vs.100%29.aspx), gdy robisz "NetworkInterface.GetAllNetworkInterfaces()' – V4Vendetta

+1

zrobiłem, ale nie jest tak naprawdę jasne o połączeniu 3G. – Arrabi

Odpowiedz

3

Niestety nie ma "porządnego" sposobu, aby to zrobić jako takie. Połączenie 3G będzie wyglądać tak samo jak połączenie ADSL lub połączenie telefoniczne (z typem sieci będącym PPP).

Jeśli masz pewność, że będziesz tylko w sieci Wi-Fi/3G, możesz sprawdzić informacje w klasie NetworkInterface podanej przez GetAllNetworkInterfaces i traktować je jako 3G, jeśli typem interfejsu jest PPP. Ale jak już wspomniałem, to samo dotyczy innych typów połączeń modemowych.

Edytuj: Być może masz trochę szczęścia szukając "3G", "HSPA", "HSDPA", "Dongle" w nazwie lub opisie urządzenia. Ale to byłby tylko "przyzwoity domysł", a nie absolutna pewność.

+0

może to być połączenie ADSL lub połączenie telefoniczne. jaki najlepszy sposób na wykrycie tego. Myślę, że ADSL będzie "NetworkInterfaceType.AsymmetricDsl" – Arrabi

+1

@ Arrabi - Połączenie 3G pojawi się jako połączenie ADSL lub telefoniczne. Pytasz o sposób, aby to wykryć, co jest subiektywnym pytaniem, więc co wypróbowałeś i dlaczego nie jesteś z niego zadowolony? –

+0

@Ramhound, zaktualizowałem moje pytanie. przepraszam za nieporozumienie. – Arrabi

Powiązane problemy