在 Linux 上获取机器 ID 的最佳方式



i386架构的GNU/Linux中获取唯一机器 ID 的最佳实践方法是什么?

除了mac地址,还有什么好方法吗?

根据您的内核,DMI 信息可能通过 sysfs 获得。试试这些:

# cat /sys/class/dmi/id/board_serial
xxxxxxxxxxxxxxx
# cat /sys/class/dmi/id/product_uuid
xxxxxxxx-xxxx-xxxx-xxxx-xxxxxxxxxxxx

或使用工具

# dmidecode -s baseboard-serial-number
...
# dmidecode -s system-uuid
...

在具有 systemd 的现代机器上:机器 ID 由 systemd-machine-id-setup 创建。机器 ID 的位置被记录在 freedesktop 机器 ID 和人机器 ID 和机器 ID 中具有更标准化的格式 - 请参阅RFC4122。只:

cat /etc/machine-id

您可以使用 lshal。这需要首先安装 hal(apt-get install hal 或 yum install hal)。这样,您可以在没有root权限的情况下访问dmidecode的所有信息。

非根等效项

# dmidecode | grep -i uuid

将是

$ lshal |grep -i system.hardware.uuid

以及根据您的需要提供类似的其他信息。

计算自己的 sysid 的一种简单而可移植的方法可能是在字符串中序列化 uname()、gethostid() 和一些 inode (如/home 或你的应用程序 homedir(使用 stat()

) 等。

最新更新