代码拉取完成,页面将自动刷新
package FlyOS
import (
"os"
"runtime"
"strings"
"gitee.com/flyiot/flylibs/FlyUtils"
"github.com/shirou/gopsutil/v3/cpu"
"github.com/shirou/gopsutil/v3/host"
)
// 获取计算机名
func HostName() string {
hostname, err := os.Hostname()
if err != nil {
return ""
}
return hostname
}
// 获取计算机唯一ID
func GetComputerId() string {
str := "cpu_"
if info, err := cpu.Info(); err == nil {
for _, cpu := range info {
str += cpu.VendorID + cpu.ModelName + cpu.Model
}
}
if info, err := host.HostID(); err == nil {
str += info
}
if s1, s2, err := host.Virtualization(); err == nil {
str += s1 + s2
}
str += tryGetCpuChipId()
str = FlyUtils.MD5(str)
return str
}
// 获取应用唯一ID,检测包括当前程序的路径和md5
func GetAPPId() string {
str := GetComputerId()
str += HostName()
if self, err := os.Executable(); err == nil {
str += self
if m, err := FlyUtils.MD5File(self); err == nil {
str += m
}
}
str = FlyUtils.MD5(str)
return str
}
// 尝试获取cpuid,一般用于arm
func tryGetCpuChipId() string {
res := ""
if runtime.GOOS == "linux" {
str := FlyUtils.ReadFile2str("/proc/cpuinfo")
str = strings.ToLower(str)
lines := strings.Split(str, "\n")
for _, line := range lines {
if strings.HasPrefix(line, "chipid") {
res += line
// if index := strings.Index(line, ":"); index > 1 {
// res = line[index+1:]
// }
}
if strings.HasPrefix(line, "serial") {
res += line
}
}
}
return res
}
此处可能存在不合适展示的内容,页面不予展示。您可通过相关编辑功能自查并修改。
如您确认内容无涉及 不当用语 / 纯广告导流 / 暴力 / 低俗色情 / 侵权 / 盗版 / 虚假 / 无价值内容或违法国家有关法律法规的内容,可点击提交进行申诉,我们将尽快为您处理。