linux - 从 Linux 操作系统中获得独特的价值
问题描述
我正在尝试从 Linux 服务器获取唯一值,例如硬件 ID,对于非 root 用户我尝试使用网络接口的 mac 地址,但在 venet0 接口(虚拟网络接口)中没有 mac 地址并且命令的输出ip addr
是:
1: lo: <LOOPBACK,UP,LOWER_UP> mtu 65536 qdisc noqueue state UNKNOWN
link/loopback 00:00:00:00:00:00 brd 00:00:00:00:00:00
inet 127.0.0.1/8 scope host lo
inet6 ::1/128 scope host
valid_lft forever preferred_lft forever
2: venet0: <BROADCAST,POINTOPOINT,NOARP,UP,LOWER_UP> mtu 1500 qdisc noqueue state UNKNOWN
link/void
inet 127.0.0.1/32 scope host venet0
inet x.x.x.x/32 brd x.x.x.x scope global venet0:0
inet6 ::2/128 scope global
valid_lft forever preferred_lft foreve
那么对于非root用户并使用适用于所有Linux发行版的build in Linux命令,最好的方法是什么?
解决方案
您可以尝试获取CPU ID,或者更好的通用计算机 UUID:
$ sudo dmidecode | grep UUID
有关更多选项,请参阅链接线程。当您似乎在虚拟化环境中工作时,请检查它们是否真的是独一无二的。也许还包含主机名。
推荐阅读
- python-3.x - Python:类型继承而不重载同名方法?
- python - 范围函数在创建 ndarray 时如何工作?
- html - 单击以进行 Web 开发后,如何在显示之前等待图像和段落
- android - 夜间模式需要sqlite吗?
- c++ - 错误地在 C++ 中声明数组,如数组 [1-00],但代码仍然有效,输出不正确?
- reactjs - 如何使用 react-moment 为语言环境设置日期?
- ember.js - EmberJS 在 application.hbs 中显示路由器模型
- c# - 从 Start.Process 重定向输出
- email - Mailto:函数打开 Paypal 应用程序而不是本机电子邮件应用程序(在移动设备上)
- ssl - 在 Ubuntu 20.04 和 Debian 10 中 ClientHello 后 SSL 握手失败(适用于 Ubuntu 18.04 和 Debian 9)