有没有办法检测我正在使用啥样的连接? WiFi、3G 还是以太网?
Posted
技术标签:
【中文标题】有没有办法检测我正在使用啥样的连接? WiFi、3G 还是以太网?【英文标题】:Is there a way to detect what kind of connection I'm using ? WiFi, 3G or Ethernet?有没有办法检测我正在使用什么样的连接? WiFi、3G 还是以太网? 【发布时间】:2012-11-17 12:02:19 【问题描述】:我正在尝试检测我所连接的网络连接类型。是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;
【问题讨论】:
我认为当您执行NetworkInterface.GetAllNetworkInterfaces()
时,您必须检查枚举NetworkInterfaceType
我做了,但是关于 3G 连接不是很清楚。
【参考方案1】:
不幸的是,没有一种“简洁”的方式来做到这一点。 3G 连接看起来与 ADSL 或拨号连接相同(网络类型为 PPP)。
如果你确定你永远只能使用 WiFi/3G,那么你可以检查GetAllNetworkInterfaces 提供的NetworkInterface
类中的信息,如果接口类型是 PPP,则将其视为 3G。但正如我提到的,其他类型的调制解调器连接也是如此。
编辑:在设备名称或描述中查找“3G”、“HSPA”、“HSDPA”、“加密狗”可能会有一些运气。但这只是一个“体面的猜测”,而不是绝对确定的。
【讨论】:
它可能是 ADSL 或拨号连接。有什么最好的方法来检测它。我认为 ADSL 将是“NetworkInterfaceType.AsymmetricDsl” @Arrabi - 3G 连接将显示为 ADSL 或拨号连接。您正在寻求检测方法,这是一个主观问题,那么您尝试了哪些方法,为什么对它不满意? @Ramhound,我更新了我的问题。很抱歉造成误解。以上是关于有没有办法检测我正在使用啥样的连接? WiFi、3G 还是以太网?的主要内容,如果未能解决你的问题,请参考以下文章
这个 wcf 服务正在运行……那是啥样的绑定?哪个是默认绑定?有人解释吗?