2012-11-29 42 views
5

Tôi đang cố gắng phát hiện loại kết nối mạng nào mà tôi được kết nối. nó là WiFi hay 3G? có cách nào để thực hiện điều đó bằng cách sử dụng biểu mẫu C# win .net 2.0 hoặc 4.0 không?Có cách nào để phát hiện loại kết nối nào tôi đang sử dụng không? WiFi, 3G hoặc 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

Tôi nghĩ bạn sẽ phải kiểm tra với enums [NetworkInterfaceType] (http://msdn.microsoft.com/en-us/library/system.net.networkinformation.networkinterfacetype%28v=vs.100%29.aspx) khi bạn làm 'NetworkInterface.GetAllNetworkInterfaces()' – V4Vendetta

+1

Tôi đã làm, nhưng nó không thực sự rõ ràng về kết nối 3G. – Arrabi

Trả lời

3

Thật không may là không có cách 'gọn gàng' để làm điều này. Kết nối 3G sẽ giống như kết nối ADSL hoặc dialup (với loại mạng là PPP).

Nếu bạn chắc chắn rằng bạn sẽ chỉ có trên WiFi/3G, bạn có thể kiểm tra thông tin trong lớp NetworkInterface được cung cấp bởi GetAllNetworkInterfaces và coi đó là 3G nếu loại giao diện là PPP. Nhưng như tôi đã đề cập, điều này cũng tương tự đối với các loại kết nối modem khác.

Chỉnh sửa: Bạn có thể gặp một số may mắn tìm kiếm "3G", "HSPA", "HSDPA", "Dongle" trong tên thiết bị hoặc mô tả. Nhưng điều này chỉ là một 'dự đoán phong nha' thay vì hoàn toàn chắc chắn.

+0

có thể là kết nối ADSL hoặc quay số. cách tốt nhất để phát hiện điều đó. Tôi nghĩ rằng ADSL sẽ là "NetworkInterfaceType.AsymmetricDsl" – Arrabi

+1

@Arrabi - Kết nối 3G sẽ xuất hiện dưới dạng kết nối ADSL hoặc Dialup. Bạn đang yêu cầu cách phát hiện điều này, đó là một câu hỏi chủ quan, vậy bạn đã thử cái gì và tại sao bạn không hài lòng với nó? –

+0

@Ramhound, tôi đã cập nhật câu hỏi của mình. xin lỗi vì sự hiểu lầm. – Arrabi

Các vấn đề liên quan