我想获取在 golang 中用作许可证名称的当前主机的唯一标识符。怎么做 ?比如像C:gethostid() //can get the host id
2 回答
UYOU
TA贡献1878条经验 获得超4个赞
您可能想要machine-id。
http://man7.org/linux/man-pages/man5/machine-id.5.html说:
机器 ID 通常在系统安装期间从随机源生成,并在所有后续引导中保持不变。可选地,对于无状态系统,如果发现它为空,则在运行时在早期启动时生成它。
机器 ID 不会根据本地或网络配置或更换硬件时更改。由于这一点及其更长的长度,它是 POSIX 指定的 gethostid(3) 调用的更有用的替代。
您可以通过以下方式获取machine-id(最近的)Linux 系统:
cat /etc/machine-id
# or
cat /var/lib/dbus/machine-id
大多数主要操作系统都有唯一的主机标识符。尽管如此,仍可能存在非唯一的主机 ID(由映像/克隆/备份-恢复引起)。
您还可以看看我的golang包装设备ID的执行细节,这适用于BSD,Linux和OS X和Windows,无需管理员权限。
慕的地6264312
TA贡献1817条经验 获得超6个赞
gethostid(3) 是一个 UNIX/BSD 特定的 libc 函数。从 /etc/hostid 读取在非 UNIX 系统上不起作用,并且与平台无关。
既然 go 没有提供像 gethostid() 这样的东西,为什么不像其他平台独立语言(如 JAVA)那样实现它,
- 2 回答
- 0 关注
- 1465 浏览
添加回答
举报
0/150
提交
取消