想知道一种使用golang代码获取序列号和制作笔记本电脑的方法。
答案 0 :(得分:6)
对此没有简单的答案,因为这是特定于操作系统的。一种选择是使用os/exec
包和解析命令输出(Windows,Linux和OS X的不同命令)。例如,获取序列号:
Windows:wmic bios get serialnumber
Linux:dmidecode -t system
OS X:ioreg -l
然后结合OS X案例的Go代码:
out, _ := exec.Command("/usr/sbin/ioreg", "-l").Output() // err ignored for brevity
for _, l := range strings.Split(string(out), "\n") {
if strings.Contains(l, "IOPlatformSerialNumber") {
s := strings.Split(l, " ")
fmt.Printf("%s\n", s[len(s)-1])
}
}
答案 1 :(得分:0)
根据 Pawel 的回答,我看到了一个小的优化,因为在我的计算机上,信息位于 21,980 行中的第 31 行。我会在找到后立即返回它并跳出 for 循环。
ba 2
fi 1
fo 3
上一个答案有效,但我不喜欢白白阅读 29,000 行! ?