初始化项目
This commit is contained in:
@@ -0,0 +1,40 @@
|
||||
package device
|
||||
|
||||
import (
|
||||
"net"
|
||||
"os"
|
||||
"strings"
|
||||
)
|
||||
|
||||
// GetDeviceID 返回本机原始唯一ID(Linux /etc/machine-id 或 hostname+MAC)
|
||||
func GetDeviceID() string {
|
||||
// 尝试读取 Linux /etc/machine-id
|
||||
if data, err := os.ReadFile("/etc/machine-id"); err == nil {
|
||||
s := strings.TrimSpace(string(data))
|
||||
if s != "" {
|
||||
return s
|
||||
}
|
||||
}
|
||||
|
||||
// fallback: hostname + first non零MAC
|
||||
hn, _ := os.Hostname()
|
||||
mac := getFirstMac()
|
||||
return hn + "|" + mac
|
||||
}
|
||||
|
||||
func getFirstMac() string {
|
||||
ifaces, err := net.Interfaces()
|
||||
if err != nil {
|
||||
return ""
|
||||
}
|
||||
for _, it := range ifaces {
|
||||
if len(it.HardwareAddr) == 0 {
|
||||
continue
|
||||
}
|
||||
mac := it.HardwareAddr.String()
|
||||
if mac != "" && mac != "00:00:00:00:00:00" {
|
||||
return mac
|
||||
}
|
||||
}
|
||||
return ""
|
||||
}
|
||||
Reference in New Issue
Block a user