为了账号安全,请及时绑定邮箱和手机立即绑定

如何在golang中获取当前主机的唯一标识符?

如何在golang中获取当前主机的唯一标识符?

Go
BIG阳 2021-12-27 15:28:28
我想获取在 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,无需管理员权限。


查看完整回答
反对 回复 2021-12-27
?
慕的地6264312

TA贡献1817条经验 获得超6个赞

gethostid(3) 是一个 UNIX/BSD 特定的 libc 函数。从 /etc/hostid 读取在非 UNIX 系统上不起作用,并且与平台无关。

既然 go 没有提供像 gethostid() 这样的东西,为什么不像其他平台独立语言(如 JAVA)那样实现它,


查看完整回答
反对 回复 2021-12-27
  • 2 回答
  • 0 关注
  • 1465 浏览
慕课专栏
更多

添加回答

举报

0/150
提交
取消
意见反馈 帮助中心 APP下载
官方微信