2015-03-02 108 views
1

在.Net(desktop,Win7)中,是否有一種可靠的方法來可靠地檢查網絡連接類型,以確定活動網絡連接是否爲移動連接?可靠地檢查.Net中的網絡連接類型(Windows 7)

目前我有這樣的:

public bool IsMobileConnectionActive() 
{ 
    if (!NetworkInterface.GetIsNetworkAvailable()) return false; 

    // PPP & broadband Interfaces 
    var broadbandTypes = new[] 
    { 
      NetworkInterfaceType.Ppp, 
      NetworkInterfaceType.Wwanpp, 
      NetworkInterfaceType.Wwanpp2 
     }; 

    var mobileInterfaces = from nic in NetworkInterface.GetAllNetworkInterfaces() 
          where nic.OperationalStatus == OperationalStatus.Up 
          where broadbandTypes.Contains(nic.NetworkInterfaceType) 
          select nic; 
    return mobileInterfaces.Any(); 
} 

然而,它似乎相當脆弱檢查特定的網絡接口類型。例如,在.net 4中,類型Wwanpp和Wwanpp2不可用。

理想的情況下,這種檢查會被莫名其妙的框架內提供...

有沒有更好的辦法?

回答

2

考慮到當前時代「移動」的使用情況,我認爲您會努力做到這一點。例如,用戶可以連接到他們的智能手機,連接到一個3g/4g集線器設備,如this,我相信所有這些設備都將顯示爲與任何其他Wifi連接一樣。

這真的取決於你爲什麼要這麼做?您或許可以測試連接上的延遲,但隨着移動網絡的改進,這將變得不太可靠。

+0

我們需要提供一種視覺指示,表明哪種連接處於活動狀態。確實,這一點很難解決,但是我們正處於一種「知道」硬件和用戶通過移動寬帶或「真實」LAN/Wifi連接連接網絡的方式。硬件是標準化的,但問題是,新版本有時會得到新的調制解調器或驅動程序,報告新的NIC類型(例如,我們最初錯過了Wwanpp2類型)。 – jeroenh 2015-07-27 06:50:16