簡體   English   中英

在 Linux 上獲取機器 ID 的最佳方法?

[英]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-idman 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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM