最近工作需要在用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

16进制ascii码转化为对应的字符,付ipmitool查询硬件信息的更多相关文章

  1. 字符串/16进制/ASCII码的转换

    1 /// <字符串转16进制格式,不够自动前面补零> 2 /// 假设文本框里面填写的是:01 02 03 04 05 06 3 /// Str获取的是01 02 03 04 05 06 ...

  2. C++ 10进制, 16进制, ASCII码, 单字节与多字节的相互转换

    这些简单的转换是用的比较频繁的, 因此将这些功能全部封装在一个类中 头文件 #pragma once #include <stdlib.h> #include <string> ...

  3. [参考]ASCII对照表 及 字符与二进制、十进制、16进制之间的转化(C/C++)

    第1节 ASCII码对照表 1.1 ASCII控制字符 1.2 ASCII可显示字符 第2节字符的进制转换 2.1 获取字符(8位)的上四位和下四位 2.2 获取字符(上表中的‘图形’)所对应的十六进 ...

  4. ASCII码与16进制的互相转换(表)

    所谓的ASCII和16进制都只是概念上的东西,在计算机中通通是二进制 转换应该是输出的转换,同样是一个数,在计算机内存中表示是一样的,只是输出不一样ASCII是针对字符的编码,几乎是键盘上的字符的编码 ...

  5. ASCII和16进制

    所谓的ASCII和16进制都只是概念上的东西,在计算机中通通是二进制 转换应该是输出的转换,同样是一个数,在计算机内存中表示是一样的,只是输出不一样ASCII是针对字符的编码,几乎是键盘上的字符的编码 ...

  6. SQLSERVER 16进制转10进制

    原码.补码.反码参考: http://www.cnblogs.com/zhangziqiu/archive/2011/03/30/ComputerCode.html 进制转换参考: http://ww ...

  7. Java中byte与(16进制)字符串的互相转换

    java中byte用二进制表示占用8位,而我们知道16进制的每个字符需要用4位二进制位来表示,所以我们就可以把每个byte转换成两个相应的16进制字符,即把byte的高4位和低4位分别转换成相应的16 ...

  8. 字节流、字符串、16进制字符串转换__Java(转)

    /** * @Package: * @ClassName:TypeConversion * @Description:字节流.字符串.16进制字符串转换 * @author:xk * @date:Ja ...

  9. 【转】iOS中16进制转10进制

    原文网址:http://www.voidcn.com/blog/u012198553/article/p-4976772.html /// 将十六进制的字符串转化为NSData - (NSData ) ...

随机推荐

  1. Mongodb学习笔记一(Mongodb环境配置)

    Mongodb学习 说明: MongoDB由databases组成,database由collections组成,collection由documents组成,document由fileds组成.Mo ...

  2. 在openwrt装ipk包

    用到putty终端和winsp两个软件 其中winsp是连接上192.168.1.1(文件协议选SCP),然后将ipk包放进去 然后用putty进入192.168.1.1 @root账号密码填完--- ...

  3. MyBatis参数传入集合之foreach用法

    传入集合list // 账户类型包括门店和分公司 List<Object> scopeList = new ArrayList<Object>(); scopeList.add ...

  4. jQuery给动态添加的元素绑定事件的方法

    我们在开发过程会遇到无法给动态元素添加绑定事件,解决方案如下: 例如 <div id="testdiv">   <ul></ul> </d ...

  5. 关于svg格式图片颜色更改

    利用 style="fill:#8a8acb" 放在path标签下面. 技巧:比如一个svg是一个圆圈内包含一个问号,问号内填充白色,圆圈内,问号外,填充其他颜色,如蓝色.可 设置 ...

  6. 菜鸟初识python request属性及方法说明

    if  request.REQUEST.has_key('键值'): HttpRequest对象的属性 参考: 表 H-1. HttpRequest对象的属性 属性 描述 path 表示提交请求页面完 ...

  7. 精通Web Analytics 2.0 (7) 第五章:荣耀之钥:度量成功

    精通Web Analytics 2.0 : 用户中心科学与在线统计艺术 第五章:荣耀之钥:度量成功 我们的分析师常常得不到我们应得的喜欢,尊重和资金,因为我们没有充分地衡量一个黄金概念:成果.因为我们 ...

  8. Angular指令渗透式理解

    通过一段时间对angular指令的使用,理解了angular指令的意义,下面逐一介绍一下. ng-app:定义一个angualr模块,表示angular作用的范围,如下代码: ng-app在html标 ...

  9. 【Codeforces720D】Slalom 线段树 + 扫描线 (优化DP)

    D. Slalom time limit per test:2 seconds memory limit per test:256 megabytes input:standard input out ...

  10. 【poj1694】 An Old Stone Game

    http://poj.org/problem?id=1694 (题目链接) 题意 一棵树,现在往上面放石子.对于一个节点x,只有当它的直接儿子都放满石子时,才能将它直接儿子中的一个石子放置x上,并回收 ...