【问题标题】:Getting CPU or motherboard serial number?获取 CPU 或主板序列号?
【发布时间】:2011-05-12 02:07:34
【问题描述】:

我正在尝试使用CPython 获取CPU serialmotherboard serial 用于许可目的。有可能吗?

我正在使用Linux

【问题讨论】:

  • 安装的网卡的MAC地址呢?
  • 请记住,英特尔“处理器序列号”功能仅在 Pentium 3 和一些 Transmeta CPU 中实现。它从未在任何 AMD CPU 或 Pentium 4 或更高版本中实现。
  • How to create a GUID in Python 的可能重复项

标签: python c licensing cpu motherboard


【解决方案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 型号都是唯一的,因此它对许可没有帮助。

      【讨论】:

        猜你喜欢
        • 2017-09-14
        • 1970-01-01
        • 2011-01-30
        • 1970-01-01
        • 2011-10-16
        • 2011-04-06
        • 2012-10-17
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多