16进制ascii码转化为对应的字符,付ipmitool查询硬件信息

最近工作需要在用ipmitool查询服务器硬件信息。ipmitool查询硬件信息

比如电源,使用命令:

获取PSU0信息:Ipmitool raw 0x3a 0x71 0x00:

获取PSU1信息:Ipmitool raw 0x3a 0x71 0x01:

但是得到的信息是这样的:

完全没有可读性,这些数字是16进制的ascii,平时我们看到的ascii都是10进制的,0—255,这里转化成16进制了。

想要知道对应的信息,刚开始想着要先把16进制转化为10进制,在转化成对应的ascii字符,网上找了之后发现完全没必要。

方法一:python中有一个方法:decode ,该 方法允许以指定的编码格式解码字符串。可以这样如图:

这样就能够把16进制转化成ascii了,具体用法百度吧。不过此方法因为有反斜杠,容易导致python的反斜杠陷阱。

方法二:

a='4d'

binascii.a2b_hex(a)

也能够转化成对应的字符。使用该方法前首先导入binascii模块:import binascii

 

另外上面ipmi输出的信息对应表如下:

位置(从0开始)

长度

数据格式

文字描述

实例解析

第0位

1

16进制整数

电源编号

解析前:00

- PSU0

解析后:(01: PSU1)

第2位

1

16进制整数

电源状态

00

-正常

第21-28位

8

字符串(ASCII)

版本

解析前:30 2e 32 35 30 00 00 00

解析后:-0.250

第29-44位

16

字符串(ASCII)

电源型号

 44 50 53 2d 31 36 30 30

 41 42 2d 37 20 41 00 00

 

-DPS-1600AB-7 A

61-76

16

字符串(ASCII)

SN序列号

 解析前:48 47 41 41 41 34 34 35

 30 30 30 30 33 34 00 00

解析后:-HGAA1445000034

 

 

 

 

 

 

 

转载于:https://www.cnblogs.com/dadong616/p/5572101.html

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

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值