C# 有没有办法检测I';我在用什么?WiFi、3G还是以太网?
我正在尝试检测所连接的网络类型。是WiFi还是3G? 有没有办法使用c#win forms.NET2.0或4.0实现这一点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
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,我更新了我的问题。对不起,误会了。