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
}