0

我需要确定计算机是否使用移动连接(例如 3G、EDGE、GPRS)连接到 Internet。我发现了这个相同的问题,但接受的答案对我没有多大帮助......System.Net.NetworkInformation.NetworkInterface该类公开了一些属性,但没有任何东西可以帮助我确定它是否是移动连接。

我的应用程序在 .NET 中,但我也对涉及 Win32 或 WMI 的解决方案感兴趣

4

1 回答 1

1

我认为如果您查询活动设备的移动宽带状态,它可能会起作用,因为如果它是移动宽带设备,它应该返回状态,否则我认为它会返回错误。

这篇文章MB Miniport Driver Initialization有一个图表显示了如何做这样的事情。引自该页面:下图表示确定接口是否被限定为 MB 接口并收集有关设备功能的信息的过程。

我自己从未尝试过,所以我不确定上述内容,也无法显示任何示例代码,但这里有一个示例部分可能包含有用的内容:网络示例

编辑:一个叫 Norman Diamon 的人在旧新闻组帖子中的代码片段

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 */ }
于 2010-09-13T10:32:20.713 回答