Pergunta

Estou tentando conseguir o CPU serial ou motherboard serial usando C ou Python Para fins de licenciamento. É possível?

estou a usar Linux.

Foi útil?

Solução

Você precisa usar a instrução CPUID.

Cpuid

A maioria dos compiladores C tem algum suporte para a montagem em linha, mas você precisará saber o que está fazendo.

Outras dicas

Em Linux, você pode usar "lshw -quiet -xml" e analisar sua saída. Você encontrará muitas informações sobre o sistema aqui: CPUID, ID da placa -mãe e muito mais.

Você pode obter o CPUID. Talvez o comando linux 'dmidecode' possa ajudá -lo. Você pode executar este comando ou carregar o código -fonte de "DMIDecode". Em seguida, é a saída do "processador DMIDecode -T":

>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

No Linux, as informações da placa -mãe podem ser encontradas em/sys/classe/dmi, por exemplo

$ 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

... Mas nem todas as placas -mãe fornecem número de série através do DMI ... como você pode ver aqui.

As CPUs não obtêm mais um número de série e já é assim há algum tempo. Para o CPUID - é um modelo exclusivo por CPU, portanto, não ajuda no licenciamento.

Licenciado em: CC-BY-SA com atribuição
Não afiliado a StackOverflow
scroll top