go语言中获取本机sid、mac地址和cpuid的方法(windows系统下有效)
package main
import (
"fmt"
"net"
"os/exec"
"regexp"
)
func main() {
var (
mac string
cpuid string
)
mac = getMac()
cpuid = getCpuId()
fmt.Println("mac:" + mac)
fmt.Println("cpuid:" + cpuid)
}
func getMac() string {
// 获取本机的MAC地址
interfaces, err := net.Interfaces()
if err != nil {
panic("Poor soul, here is what you got: " + err.Error())
}
inter := interfaces[0]
mac := inter.HardwareAddr.String() //获取本机MAC地址
// ("MAC = ", mac)
return mac
}
func getCpuId() string {
cmd := exec.Command("wmic", "cpu", "get", "ProcessorID")
out, err := cmd.CombinedOutput()
if err != nil {
fmt.Println(err)
}
// (string(out))
str := string(out)
//匹配一个或多个空白符的正则表达式
reg := regexp.MustCompile("\\s+")
str = reg.ReplaceAllString(str, "")
return str[11:]
}