簡體   English   中英

有沒有辦法檢測我正在使用什么樣的連接? WiFi,3G還是以太網?

[英]Is there a way to detect what kind of connection I'm using ? WiFi, 3G or Ethernet?

我正在嘗試檢測我連接的網絡連接類型。 是WiFi還是3G? 有沒有辦法使用c#win forms .net 2.0或4.0?

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

不幸的是,沒有一種“整潔”的方式來做到這一點。 3G連接看起來與ADSL或撥號連接相同(網絡類型為PPP)。

如果您確定自己只使用WiFi / 3G,則可以檢查GetAllNetworkInterfaces提供的NetworkInterface類中的信息,如果接口類型為PPP, 則將其視為3G。 但正如我所提到的,其他類型的調制解調器連接也是如此。

編輯:你可能有運氣在設備名稱或描述中尋找“3G”,“HSPA”,“HSDPA”,“Dongle”。 但這只是一個“體面的猜測”,而不是絕對肯定。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM