在Windows和Linux上用Python获取唯一计算机ID
我想用Python在Windows和Linux上获取一个唯一的计算机ID。这个ID可以是CPU的编号、主板的序列号,或者其他什么东西。
我查看了几个模块(比如pycpuid、psi等),但都没有找到合适的解决办法。
有没有什么好的方法可以做到这一点呢?
13 个回答
16
有趣!不过uuid.getnode返回的值和dmidecode.exe是一样的。
subprocess.Popen('dmidecode.exe -s system-uuid'.split())
00000000-0000-0000-0000-001FD088565A
import uuid
uuid.UUID(int=uuid.getnode())
UUID('00000000-0000-0000-0000-001fd088565a')
18
看起来没有直接的“python”方法来做到这一点。在现代电脑硬件上,通常会在 BIOS 中存储一个 UUID - 在 Linux 系统中,有一个命令行工具 dmidecode
可以读取这个 UUID;下面是我桌面的一个例子:
System Information
Manufacturer: Dell Inc.
Product Name: OptiPlex 755
Version: Not Specified
Serial Number: 5Y8YF3J
UUID: 44454C4C-5900-1038-8059-B5C04F46334A
Wake-up Type: Power Switch
SKU Number: Not Specified
Family: Not Specified
关于 MAC 地址的问题是,通常你可以很容易地通过编程来更改它们(至少在你在虚拟机中运行操作系统的时候)
在 Windows 系统上,你可以使用这个 C API
1
用MAC地址作为唯一标识符怎么样?
这里的讨论 如何使用Python获取设备的MAC地址 展示了如何获取MAC地址。