Getting CPU or motherboard serial number?
Asked Answered
H

5

5

I'm trying to get the CPU serial or motherboard serial using C or Python for licensing purposes. Is it possible?

I'm using Linux.

Hassanhassell answered 18/11, 2010 at 14:49 Comment(3)
what about the MAC address of an installed NIC?Silicone
Keep in mind the Intel "Processor Serial Number" feature was only ever implemented in the Pentium 3, and some Transmeta CPUs. It was never implemented in any AMD CPUs, or the Pentium 4 or later models.Margit
possible duplicate of How to create a GUID in PythonHumanity
R
4

You need to use the CPUID instruction.

CPUID

Most C compilers have some support for inline assembly, but you will need to know what you are doing.

Rigging answered 18/11, 2010 at 14:51 Comment(0)
S
7

Under Linux, you could use "lshw -quiet -xml" and parse its output. You'll find plenty of system information here: cpuid, motherboard id and much more.

Silicone answered 18/11, 2010 at 15:0 Comment(2)
+1 for this, just for the information of ronakin, call this using subprocess and you can then parse the output.Mealy
then you really need to tell us which OS you are targeting, or go with CPUID as dicroce writesSilicone
R
4

You need to use the CPUID instruction.

CPUID

Most C compilers have some support for inline assembly, but you will need to know what you are doing.

Rigging answered 18/11, 2010 at 14:51 Comment(0)
V
3

You can get the CPUID. Maybe linux command 'dmidecode' can help you. You can exec this command,or load the source code of "dmidecode". Next is the output of "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
Vermeil answered 19/11, 2010 at 8:32 Comment(1)
I was thinking of not using external programs but library functions. anyway, the cpuid is not unique so i guess i won't be using thatHassanhassell
A
2

In Linux, motherboard information may be found under /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

...but not all motherboards provide serial number through dmi...as you can see here.

Afterbrain answered 22/12, 2011 at 14:5 Comment(0)
H
0

CPUs no longer obtain a serial number and it's been like that for a while now. For the CPUID - it's unique per CPU model therefore it doesn't help with licensing.

Hassanhassell answered 19/11, 2010 at 7:40 Comment(0)

© 2022 - 2024 — McMap. All rights reserved.