douchao9899 2019-03-15 07:21
浏览 1188
已采纳

获取网卡的NetCfgInstanceId

If you know the name of a network card, how can you get its instance ID? eg: WLAN 2 {74892867-F98B-454B-904F-88912DDE4B9F}. I don't want to use the command line; it's better to work with the registry. What should be the policy that matches the network card in the registry (HKLM/SYSTEM/CurrentControlSet/Control/Class/{4d36e972-e325-11ce-bfc1-08002be10318})?

Language: Go 1.11
Platform: Windows 10

  • 写回答

1条回答 默认 最新

  • duan198299 2019-03-15 09:31
    关注

    Get All NetCfgInstanceId on Your Windows.

    package main
    
    import (
        "fmt"
        "log"
    
        "golang.org/x/sys/windows/registry"
    )
    
    const ADAPTER_KEY = `SYSTEM\CurrentControlSet\Control\Class\{4D36E972-E325-11CE-BFC1-08002BE10318}`
    
    func main() {
        k, err := registry.OpenKey(registry.LOCAL_MACHINE, ADAPTER_KEY, registry.ENUMERATE_SUB_KEYS|registry.QUERY_VALUE)
        if err != nil {
            log.Fatal(err)
        }
        defer k.Close()
    
        keyNames, err := k.ReadSubKeyNames(-1)
        if err != nil {
            log.Fatal(err)
        }
    
        for _, keyName := range keyNames {
            n, _ := matchKey(k, keyName)
            if n != "" {
                fmt.Println(n)
            }
        }
    }
    
    func matchKey(zones registry.Key, keyName string) (string, error) {
        k, err := registry.OpenKey(zones, keyName, registry.READ)
        if err != nil {
            return "", err
        }
        defer k.Close()
    
        netCfgInstanceId, _, err := k.GetStringValue("NetCfgInstanceId")
        if err != nil {
            return "", err
        }
    
        return netCfgInstanceId, nil
    }
    
    本回答被题主选为最佳回答 , 对您是否有帮助呢?
    评论

报告相同问题?

悬赏问题

  • ¥15 关于#MATLAB#的问题,如何解决?(相关搜索:信噪比,系统容量)
  • ¥500 52810做蓝牙接受端
  • ¥15 基于PLC的三轴机械手程序
  • ¥15 多址通信方式的抗噪声性能和系统容量对比
  • ¥15 winform的chart曲线生成时有凸起
  • ¥15 msix packaging tool打包问题
  • ¥15 finalshell节点的搭建代码和那个端口代码教程
  • ¥15 Centos / PETSc / PETGEM
  • ¥15 centos7.9 IPv6端口telnet和端口监控问题
  • ¥20 完全没有学习过GAN,看了CSDN的一篇文章,里面有代码但是完全不知道如何操作