在.Net(windows 7)中可靠地检查网络连接类型

本文关键字:检查 网络 类型 连接 Net windows | 更新日期: 2024-09-23 07:36:54

在.Net(桌面,Win7)中,是否有一种规范的方法可以可靠地检查网络连接类型,以确定活动网络连接是否为移动连接?

目前我有这个:

public bool IsMobileConnectionActive()
{
    if (!NetworkInterface.GetIsNetworkAvailable()) return false;
    // PPP & broadband Interfaces
    var broadbandTypes = new[]
    {
            NetworkInterfaceType.Ppp,
            NetworkInterfaceType.Wwanpp,
            NetworkInterfaceType.Wwanpp2
        };
    var mobileInterfaces = from nic in NetworkInterface.GetAllNetworkInterfaces()
                           where nic.OperationalStatus == OperationalStatus.Up
                           where broadbandTypes.Contains(nic.NetworkInterfaceType)
                           select nic;
    return mobileInterfaces.Any();
}

然而,检查特定的网络接口类型似乎相当脆弱。例如,在.net 4中,类型Wwanpp和Wwanpp2不可用。

理想情况下,该检查将由框架以某种方式提供。。。

有更好的方法吗?

在.Net(windows 7)中可靠地检查网络连接类型

考虑到当前时代"Mobile"的用例数量,我认为您将很难可靠地做到这一点。例如,用户可以连接到他们的智能手机,连接到像这样的3g/4g集线器设备,我相信所有这些都会像任何其他Wifi连接一样。

这真的取决于你为什么要这么做?你也许可以测试连接的延迟,但随着移动网络的改进,这将变得不那么可靠。