簡體   English   中英

如何在Linux或Perl中為每台計算機創建唯一標識符?

[英]How can I create unique identifiers for each machine in Linux or Perl?

我在許多機器上運行一個Perl腳本,該腳本會將一些數據存儲到MySQL數據庫中。 我需要知道數據源。

我不能使用hostname,因為某些計算機的主機名是'localhost'。

ifconfig給出隨機設備和IP,一些eth0 ,一些eth1 ,一些其他設備名稱。

還有其他方法可以為每台計算機創建唯一標識符嗎? 而且,每次我運行Perl腳本時,此唯一標識符都不會更改。

您可以嘗試使用uuid。

uuid-DCE兼容的通用唯一標識符庫

這里

除了先前對genhostid的調用之外,還應該使用hostid ,該調用將生成並存儲機器的唯一ID(因此,每次調用該ID都不會改變)。

dmidecode的輸出提供了許多硬件UUID和序列號,您的perl腳本可以利用這些序列號。 引用dmidecode的手冊頁:

  dmidecode is a tool for dumping a computer's DMI (some say SMBIOS) table contents in a human-readable format. This table contains a description of the system's hardware components, as well as other useful pieces of information such as serial numbers and BIOS revision. 

我發現最好的方法是第一次生成具有隨機ID的文件,並在文件存在后使用文件內容。 我把它放在/ etc的某個地方,但這沒關系。

這可以容忍系統配置更改,但是需要一些額外的工作才能進行遠程查詢。

取MAC地址並修改它?

ipconfig -a

要么

arp

解析?

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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