1234567891011121314151617181920212223242526272829303132333435363738 |
- //go:build linux
- // +build linux
- package machineid
- import (
- "crypto/md5"
- "encoding/hex"
- "net"
- )
- func getMachineID() (s string, err error) {
- paths := []string{
- "/var/lib/dbus/machine-id",
- "/etc/machine-id",
- "/sys/class/dmi/id/product_uuid",
- }
- var (
- buf []byte
- )
- for _, p := range paths {
- if buf, err = ioutil.ReadFile(p); err == nil {
- s = string(buf)
- return
- }
- }
- //计算网卡信息
- h := md5.New()
- if is, err := net.Interfaces(); err == nil {
- for _, i := range is {
- if i.HardwareAddr != nil {
- h.Write(i.HardwareAddr)
- }
- }
- }
- s = hex.EncodeToString(h.Sum(nil))
- return
- }
|