python 获取硬件信息_Python Linux dmidecode,如何通过解析获取硬件信息?

1586010002-jmsa.png

I'm using Fedora 17 64bit, installed dmidecode and python-dmidecode, in my search for a doc on how to use python-dmidecode, i've yet to find anything. I found an example while browsing the source but nothing else. Anyone familiar with this module and how to access it in python? Any documentation you can reference me to would be helpful.

I'm trying to obtain hardware specifications in Fedora 17:

In C# using Management namespace, I was able to obtain all the following:

Will it be possible to obtain the same In Linux via Python?

BIOS

- Name

Motherboard

- Manufacturer

- Model

CPU

- Name

- Architecture

- NumberOfCores

- CurrentClockSpeed

Memory

- Name

- Manufacturer

- MemoryType

- Speed

- DeviceLocator

- Capacity

- Model

Video

- Name

- VideoProcessor

- AdapterRam

- VideoMemoryType

- VideoArchitecture

- VideoMode

Network

- Name

- ProductName

- Manufacturer

- PhysicalAdapter

HardDrive

- Index

- Description

- InterfaceType

- Manufacturer

- Model

- Size

- Partitions

解决方案

Figured it out, by using the following we can obtain all data that I need:

import dmidecode

def getBIOS():

for v in dmidecode.bios().values():

if type(v) == dict and v['dmi_type'] == 0:

BIOSdict["Name"] = str((v['data']['Vendor']))

BIOSdict["BuildNumber"] = str((v['data']['Version']))

BIOSdict["SoftwareElementID"] = str((v['data']['BIOS Revision']))

We iterate the dmidecode.bios().values() to find each field of data. We can see which function to use by referencing the table below. Which is also located at this link.

We then check the type of 'v' to ensure its a dictionary (That's what I'm using in my case) and we check that the 'dmi_type' is the correct code for what we are searching for.

For example:

Type Information

----------------------------------------

0 BIOS

1 System

2 Base Board

3 Chassis

4 Processor

5 Memory Controller

6 Memory Module

7 Cache

8 Port Connector

9 System Slots

10 On Board Devices

11 OEM Strings

12 System Configuration Options

13 BIOS Language

14 Group Associations

15 System Event Log

16 Physical Memory Array

17 Memory Device

18 32-bit Memory Error

19 Memory Array Mapped Address

20 Memory Device Mapped Address

21 Built-in Pointing Device

22 Portable Battery

23 System Reset

24 Hardware Security

25 System Power Controls

26 Voltage Probe

27 Cooling Device

28 Temperature Probe

29 Electrical Current Probe

30 Out-of-band Remote Access

31 Boot Integrity Services

32 System Boot

33 64-bit Memory Error

34 Management Device

35 Management Device Component

36 Management Device Threshold Data

37 Memory Channel

38 IPMI Device

39 Power Supply

Keyword Types

------------------------------

bios 0, 13

system 1, 12, 15, 23, 32

baseboard 2, 10

chassis 3

processor 4

memory 5, 6, 16, 17

cache 7

connector 8

slot 9

If we wanted to get the BIOS Info, we would then reference v['dmi_type'] == 0 this will return a dictionary. We can then create our own dict (in my case BIOSdict = [] ) and add the key and value as so:

BIOSdict["Name"] = str((v['data']['Vendor']))

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值