Golang图书馆获取序列号并制作笔记本电脑?

时间:2017-06-23 07:07:19

标签: go

想知道一种使用golang代码获取序列号和制作笔记本电脑的方法。

2 个答案:

答案 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 行! ?