猿问

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

我想获取在 golang 中用作许可证名称的当前主机的唯一标识符。怎么做 ?比如像C:

gethostid() //can get the host id


BIG阳
浏览 1466回答 2
2回答

UYOU

您可能想要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# orcat /var/lib/dbus/machine-id大多数主要操作系统都有唯一的主机标识符。尽管如此,仍可能存在非唯一的主机 ID(由映像/克隆/备份-恢复引起)。您还可以看看我的golang包装设备ID的执行细节,这适用于BSD,Linux和OS X和Windows,无需管理员权限。

慕的地6264312

gethostid(3) 是一个 UNIX/BSD 特定的 libc 函数。从 /etc/hostid 读取在非 UNIX 系统上不起作用,并且与平台无关。既然 go 没有提供像 gethostid() 这样的东西,为什么不像其他平台独立语言(如 JAVA)那样实现它,
随时随地看视频慕课网APP

相关分类

Go
我要回答