获取系统的唯一标识符(不是MAC地址)?

时间:2015-02-10 14:55:37

标签: c++ c linux uuid

由于某些原因,我需要获得Linux系统的唯一标识符,该系统在重新启动系统时不会更改(但是当用户替换可命名的硬件数量或格式化硬盘时可能会更改)。

以下解决方案 NOT 可能:

  • 使用MAC地址(已使用但在某些系统上失败) 因为没有网络接口)
  • 使用blkid获​​取分区的UUID - 此命令不是 在所有系统上都可用,而且有点困难 自动找出用于该
  • 的分区

那么......任何其他想法如何唯一地识别系统?

谢谢!

1 个答案:

答案 0 :(得分:1)

我认为你的问题的答案将取决于你认为是永久性的"系统的一部分。让我们假设您从应用程序的角度决定硬盘驱动器分区是半永久性的,然后计算/proc/paritions内容的某种哈希值。

在bash中,类似于:

#!/bin/sh
cat /proc/partitions |sha1sum|cut "-d " -f1