我需要确定计算机是否使用移动连接(例如3G,EDGE,GPRS)连接到Internet。我找到了this identical question,但接受的答案对我没有多大帮助...... System.Net.NetworkInformation.NetworkInterface
类暴露了一些属性,但没有什么可以帮助我确定它是否是移动连接。
我的应用程序是在.NET中,但我也对涉及Win32或WMI的解决方案感兴趣
答案 0 :(得分:1)
我认为如果您查询活动设备的Mobile Broadband状态可能会有效,因为如果它是移动宽带设备,它应该返回状态,否则我认为它会返回错误。
这篇文章MB Miniport Driver Initialization有一个图表,展示了如何做这样的事情。从该页面引用:下图表示确定接口是否被限定为MB接口并收集有关设备功能的信息的过程。
我自己从未尝试过,所以我不确定上述内容,但我无法显示任何示例代码,但有一个部分可能包含一些有用的示例:Network Samples
编辑:旧新闻组中名为Norman Diamon的人的代码段posting
DWORD PhysicalMediumQuery = OID_GEN_PHYSICAL_MEDIUM;
NDIS_PHYSICAL_MEDIUM PhysicalMediumResult;
DWORD PhysicalMediumResultLength;
if (!DeviceIoControl(DeviceHandle, IOCTL_NDIS_QUERY_GLOBAL_STATS,
&PhysicalMediumQuery, sizeof PhysicalMediumQuery,
&PhysicalMediumResult, sizeof PhysicalMediumResult,
&PhysicalMediumResultLength, NULL))
{ /* do error handling here */ }