[英]Best way to get machine id on Linux?
在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 的現代機器上:machine id 由systemd-machine-id-setup 創建。 機器 id 的位置被記錄在案 - 在freedesktop machine-id和man machine-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() 獲得)等序列化為字符串並散列它。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.