即使未激活,也可检索移动网络接口的名称

问题描述

我想知道如何检索(最好使用 C# API)移动界面的名称即使它已被禁用

最后一句很重要,因为我所知道的最明显(也是最干净)的解决方案不适用于禁用的接口。

这是我迄今为止尝试过的:

  1. System.Net.networkinformation.NetworkInterface

    NetworkInterface.GetAllNetworkInterfaces() 返回启用接口。

  2. WMI 查询 Win32_NetworkAdapter

    在这种情况下几乎是同样的问题。让我们考虑以下查询

    new ManagementObjectSearcher(
         "SELECT NetConnectionID FROM Win32_NetworkAdapter Where AdapterTypeId=9"
    ).Get()
    

    接口名称对应于 NetConnectionID 并且 AdapterTypeId = 9 对应于无线一个所以上面的查询应该给我我想要的......除了当接口未启用时, AdapterTypeId 的值留空并且查询不返回任何内容。很遗憾,因为 NetConnectionID 仍然是正确的,但我没有任何标准来检索它。 (加入也许...?)

  3. Shell 命令

    同样的问题。

    netsh mbn show interfaces
    

    ...在目标机器上返回

    Le système dispose d'1 interface :
    
    Nom                   : Cellulaire
    Description            : Sierra Wireless Mobile broadband Network Adapter
    GUID                   : {AAAAAA-AAAA-AAAA-AAAA-AAAAAAAAAAA}
    Adresse physique       : 00:00:00:00:00:00
    Contexte PDP supplémentaire : non (interface physique)
    ...
    

    ...当界面仅启用时!再来一次!

    此外,他的响应依赖于语言(此处为法语),因此恕我直言,解析更加脆弱和复杂,因为很可能某些机器是用另一种语言配置的。

    我宁愿避免这种可能在一种配置下工作而在另一种配置下失败的解决方案。

注意:它应该在 Windows 7 和 Windows 10 上运行的机器

解决方法

暂无找到可以解决该程序问题的有效方法,小编努力寻找整理中!

如果你已经找到好的解决方法,欢迎将解决方案带上本链接一起发送给小编。

小编邮箱:dio#foxmail.com (将#修改为@)