在Windows和Linux上用Python获取唯一计算机ID

54 投票
13 回答
89217 浏览
提问于 2025-04-15 20:31

我想用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地址。

撰写回答