zoukankan      html  css  js  c++  java
  • 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

     

     

  • 相关阅读:
    头像点击预览代码
    知识总结和记录——Bootstrap
    知识总结和记录——HTML
    知识总结和记录——面向对象
    知识总结和记录——递归
    知识总结和记录——迭代器和生成器
    知识总结和记录——内置函数
    zap 学习笔记
    2020年总结
    学习笔记_Linux常用指令
  • 原文地址:https://www.cnblogs.com/dadong616/p/5572101.html
Copyright © 2011-2022 走看看