我们是否可以为每台PC生成一个唯一的ID,例如uuuidgen,但除非有硬件更改,否则它永远不会改变?我正在考虑合并CPUID和MACADDR并将它们哈希以生成一致的ID,但我不知道如何使用bash脚本解析它们,我知道如何从中获取CPUID
dmidecode -t 4 | grep ID
和
ifconfig | grep ether
然后我需要组合这些十六进制字符串并使用sha1或md5散列它们以创建固定长度的十六进制字符串.
我该如何解析输出?
解决方法:
这两个怎么样:
$sudo dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g'
52060201FBFBEBBF
$ifconfig | grep eth1 | awk '{print $NF}' | sed 's/://g'
0126c9da2c38
然后,您可以将它们组合并哈希:
$echo $(sudo dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g') \
$(ifconfig | grep eth1 | awk '{print $NF}' | sed 's/://g') | sha256sum
59603d5e9957c23e7099c80bf137db19144cbb24efeeadfbd090f89a5f64041f -
要删除尾随破折号,请再添加一个管道:
$echo $(sudo dmidecode -t 4 | grep ID | sed 's/.*ID://;s/ //g') \
$(ifconfig | grep eth1