有没有一种方法来检测我使用的是什么类型的连接? WIFI,3G或以太网?(Is there a

2019-08-03 08:17发布

我试图发现什么样的网络连接,我连接。 它是WiFi或3G? 有没有办法做到这一点使用C#赢形式的.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;
                }
            }
        }

Answer 1:

不幸的是,不是“整齐”的方式做到这一点本身。 3G连接看起来一样作为ADSL或拨号连接(与网络类型为PPP)。

如果你确信你将永远只能在WiFi / 3G,那么你可以在查资料NetworkInterface提供一流GetAllNetworkInterfaces并把它作为3G如果接口类型为PPP。 但正如我提到这是其他类型的调制解调器连接的是相同的。

编辑:你可能有一些运气寻找“3G”,在设备名称或描述,“HSPA”,“HSDPA”,“加密狗”。 但this'd只能是一个“体面的猜测”,而不是绝对肯定的。



文章来源: Is there a way to detect what kind of connection I'm using ? WiFi, 3G or Ethernet?