有没有办法检测我正在使用什么样的连接? WiFi,3G还是以太网?

时间:2012-11-29 11:59:26

标签: c# winforms networking wifi 3g

我正在尝试检测我连接的网络连接类型。是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;
                }
            }
        }

1 个答案:

答案 0 :(得分:4)

不幸的是,没有一种“整洁”的方法可以做到这一点。 3G连接看起来与ADSL或拨号连接相同(网络类型为PPP)。

如果您确定自己只使用WiFi / 3G,那么您可以查看GetAllNetworkInterfaces提供的NetworkInterface课程中的信息,如果是接口类型则将其视为3G是PPP。但正如我所提到的,其他类型的调制解调器连接也是如此。

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