获取 CPU 或主板序列号?
Posted
技术标签:
【中文标题】获取 CPU 或主板序列号?【英文标题】:Getting CPU or motherboard serial number? 【发布时间】:2011-05-12 02:07:34 【问题描述】:我正在尝试使用C
或Python
获取CPU serial
或motherboard serial
用于许可目的。有可能吗?
我正在使用Linux
。
【问题讨论】:
安装的网卡的MAC地址呢? 请记住,英特尔“处理器序列号”功能仅在 Pentium 3 和一些 Transmeta CPU 中实现。它从未在任何 AMD CPU 或 Pentium 4 或更高版本中实现。 How to create a GUID in Python 的可能重复项 【参考方案1】:在 Linux 下,您可以使用“lshw -quiet -xml”并解析其输出。您会在这里找到大量系统信息:cpuid、主板 ID 等等。
【讨论】:
+1 为这个,只是为了ronakin
的信息,使用subprocess
调用这个,然后你可以解析输出。
那么你真的需要告诉我们你的目标是哪个操作系统,或者像 dicroce 写的那样使用 CPUID【参考方案2】:
你需要使用CPUID指令。
CPUID
大多数 C 编译器都支持内联汇编,但您需要知道自己在做什么。
【讨论】:
【参考方案3】:您可以获得 CPUID。 也许linux命令'dmidecode'可以帮助你。 您可以执行此命令,或加载“dmidecode”的源代码。 接下来是“dmidecode -t processor”的输出:
>dmidecode -t processor
# dmidecode 2.7
SMBios 2.2 present.
Handle 0x0004, DMI type 4, 32 bytes.
Processor Information
Socket Designation: Socket 478
Type: Central Processor
Family: Pentium 4
Manufacturer: Intel
ID: 27 0F 00 00 FF FB EB BF
Signature: Type 0, Family 15, Model 2, Stepping 7
Flags:
FPU (Floating-point unit on-chip)
VME (Virtual mode extension)
DE (Debugging extension)
PSE (Page size extension)
TSC (Time stamp counter)
MSR (Model specific registers)
PAE (Physical address extension)
MCE (Machine check exception)
CX8 (CMPXCHG8 instruction supported)
APIC (On-chip APIC hardware supported)
SEP (Fast system call)
MTRR (Memory type range registers)
PGE (Page global enable)
MCA (Machine check architecture)
CMOV (Conditional move instruction supported)
PAT (Page attribute table)
PSE-36 (36-bit page size extension)
CLFSH (CLFLUSH instruction supported)
DS (Debug store)
ACPI (ACPI supported)
MMX (MMX technology supported)
FXSR (Fast floating-point save and restore)
SSE (Streaming SIMD extensions)
SSE2 (Streaming SIMD extensions 2)
SS (Self-snoop)
HTT (Hyper-threading technology)
TM (Thermal monitor supported)
PBE (Pending break enabled)
Version: Intel(R) Pentium(R) 4 CPU
Voltage: 1.5 V
External Clock: 133 MHz
Max Speed: 3066 MHz
Current Speed: 2800 MHz
Status: Populated, Enabled
Upgrade: ZIF Socket
L1 Cache Handle: 0x0008
L2 Cache Handle: 0x0009
L3 Cache Handle: No L3 Cache
【讨论】:
我在考虑不使用外部程序,而是使用库函数。无论如何,cpuid 不是唯一的,所以我想我不会使用它【参考方案4】:在 Linux 中,主板信息可以在 /sys/class/dmi eg下找到
$ sudo grep '' /sys/class/dmi/id/board_*
/sys/class/dmi/id/board_asset_tag:
/sys/class/dmi/id/board_name:30AD
/sys/class/dmi/id/board_serial:
/sys/class/dmi/id/board_vendor:Hewlett-Packard
/sys/class/dmi/id/board_version:KBC Version 56.34
...但并非所有主板都通过 dmi 提供序列号...如您所见。
【讨论】:
【参考方案5】:CPU 不再获得序列号,这种情况已经有一段时间了。对于 CPUID - 每个 CPU 型号都是唯一的,因此它对许可没有帮助。
【讨论】:
以上是关于获取 CPU 或主板序列号?的主要内容,如果未能解决你的问题,请参考以下文章
Python获取电脑硬件配置的封装类,可以获取CPU序列号主板序列号BIOS序列号硬盘序列号和网卡MAC地址
Python获取电脑硬件配置的封装类,可以获取CPU序列号主板序列号BIOS序列号硬盘序列号和网卡MAC地址
Python获取电脑CPU序列号主板序列号BIOS序列号硬盘序列号列表网卡MAC地址