【问题标题】:Reliably check network connection type in .Net (windows 7)可靠地检查 .Net (windows 7) 中的网络连接类型
【发布时间】:2015-03-02 15:25:04
【问题描述】:

在.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 不可用。

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

有没有更好的办法?

【问题讨论】:

    标签: c# .net base-class-library


    【解决方案1】:

    鉴于当前时代“移动”的用例数量众多,我认为您将很难可靠地做到这一点。例如,用户可以连接到他们的智能手机,连接到像 this 这样的 3g/4g 集线器设备,我相信所有这些设备都会像任何其他 Wifi 连接一样出现。

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

    【讨论】:

    • 我们需要提供哪种连接处于活动状态的视觉指示。的确,通常这很难解决,但我们处于这样一个场景中,即我们“了解”硬件和用户连接网络的方式,无论是通过移动宽带还是“真正的”LAN/Wifi 连接。硬件是标准化的,但问题仍然是,新版本有时会获得新的调制解调器或驱动程序,报告新的 NIC 类型(例如,我们最初错过了 Wwanpp2 类型)。
    猜你喜欢
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-04-28
    • 1970-01-01
    • 2012-04-18
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多