Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/csharp/267.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
C# 有没有办法检测I';我在用什么?WiFi、3G还是以太网?_C#_Winforms_Networking_Wifi_3g - Fatal编程技术网

C# 有没有办法检测I';我在用什么?WiFi、3G还是以太网?

C# 有没有办法检测I';我在用什么?WiFi、3G还是以太网?,c#,winforms,networking,wifi,3g,C#,Winforms,Networking,Wifi,3g,我正在尝试检测所连接的网络类型。是WiFi还是3G? 有没有办法使用c#win forms.NET2.0或4.0实现这一点 foreach (NetworkInterface adapter in adapters) { if (adapter.OperationalStatus == OperationalStatus.Up) { if (adapter.NetworkInterfa

我正在尝试检测所连接的网络类型。是WiFi还是3G? 有没有办法使用c#win forms.NET2.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,那么您可以检查由提供的
NetworkInterface
类中的信息,如果接口类型为PPP,则将其视为3G。但正如我所提到的,其他类型的调制解调器连接也是如此


编辑:在设备名称或描述中查找“3G”、“HSPA”、“HSDPA”、“加密狗”可能会有些运气。但是这只是一个“合理的猜测”,而不是绝对肯定。

我想你在做
NetworkInterface时必须检查枚举。GetAllNetworkInterfaces()
我做了,但3G连接不是很清楚。它可能是ADSL或拨号连接。什么是最好的检测方法。我认为ADSL将是“NetworkInterfaceType.AsymmetricDsl”@Arrabi-3G连接将显示为ADSL或拨号连接。你在问如何发现这一点,这是一个主观问题,那么你尝试了什么,为什么不满意呢?@Ramhound,我更新了我的问题。对不起,误会了。