8个版本 (4个重大更新)
新 0.5.3 | 2024年8月17日 |
---|---|
0.5.2 | 2024年6月30日 |
0.5.1 | 2023年8月8日 |
0.5.0 | 2023年7月29日 |
0.1.0 | 2018年10月2日 |
#50 in Operating systems
每月下载量 21,853
在 23 个crate中使用 (17个直接使用)
11KB
138 代码行数(不含注释)
machine-uid
无需root权限获取操作系统原生机器ID。
关于机器ID
在Linux中,机器ID是一个以单个换行符结尾的、32个字符长的小写十六进制ID。从十六进制解码后,对应一个16字节/128位的值。这个ID可能不是全零。这个ID唯一标识了主机。它应该被视为“机密”信息,不应在不受信任的环境中暴露。请注意,机器ID可以被root重新生成。
请注意,在*nix平台上,此库不需要任何依赖项,但在Windows上,它需要winreg
依赖项。因此,如果您只需要构建*nix版本,您可以使用版本0.3.0。
使用方法
use machine_uid;
fn main() {
let id: String = machine_uid::get().unwrap();
println!("{}", id);
}
工作原理
它从以下来源获取机器ID
Linux或使用systemd的系统
cat /var/lib/dbus/machine-id # or /etc/machine-id
BSD
cat /etc/hostid # or kenv -q smbios.system.uuid
OSX
ioreg -rd1 -c IOPlatformExpertDevice | grep IOPlatformUUID
Windows
(Get-ItemProperty -Path Registry::HKEY_LOCAL_MACHINE\SOFTWARE\Microsoft\Cryptography).MachineGuid
illumos
gethostid(3C)
支持的平台
我已经在以下平台上进行了测试
- Debian 8
- OS X 10.6
- FreeBSD 10.4
- Fedora 28
- Windows 10
- OmniOS r151050
更新日志
v0.5.3
- 移除内置的C依赖项#13
v0.5.2
v0.5.1
v0.5.0
- 修复交叉编译问题#7
v0.4.0
- 修复x86程序在x64上运行的问题#4
v0.3.0
- 将winreg升级到0.11
v0.2.0
- 添加对Windows的支持
许可证
MIT License 版权所有 (c) 2018, Hanaasagi
依赖项
~0–9.5MB
~42K SLoC