Python pysnmp输出格式问题

Python pysnmp输出格式问题,python,pysnmp,Python,Pysnmp,我试图使用PySNMP从cisco路由器获取一些snmp变量,但我使用prettyprint获取十六进制输出,而不是从普通的snmp浏览器获取的输出 我尝试过多次编码(十六进制、utf-8和ascii),但没有编码,总是不是我所期望的 有什么想法吗? 谢谢 开始发现10.148.8.15 1.3.6.1.2.1.1.1.0 = 0x436973636f20494f5320536f6674776172652c20494f532d584520536f66747761726520285838365f3

我试图使用
PySNMP
从cisco路由器获取一些snmp变量,但我使用
prettyprint
获取十六进制输出,而不是从普通的snmp浏览器获取的输出

我尝试过多次编码(十六进制、utf-8和ascii),但没有编码,总是不是我所期望的

有什么想法吗? 谢谢

开始发现
10.148.8.15

1.3.6.1.2.1.1.1.0 = 0x436973636f20494f5320536f6674776172652c20494f532d584520536f66747761726520285838365f36345f4c494e55585f494f53442d554e4956455253414c4b392d4d292c2056657273696f6e2031352e3228342953352c2052454c4541534520534f4654574152452028666331290d0a546563686e6963616c20537570706f72743a20687474703a2f2f7777772e636973636f2e636f6d2f74656368737570706f72740d0a436f707972696768742028632920313938362d3230313420627920436973636f2053797374656d732c20496e632e0d0a436f6d70696c6564205475652032352d4665622d31342031313a3336206279206d63707265

   result = {'error': 1, 'value': "default"}
cmdGen = cmdgen.CommandGenerator()
errorIndication, errorStatus, errorIndex, varBinds = cmdGen.getCmd(
cmdgen.CommunityData(community),
cmdgen.UdpTransportTarget((destination, 161)),
cmdgen.MibVariable(oid)
)


这是因为Cisco SNMP代理报告可能会影响脚本输出的控制字符(\n)。有几种方法可以处理此问题:

  • Pass
    lookupMib=True
    如中所示。然后pysnmp将尝试在MIB中为这个特定的OID查找适当的输出格式。要使其正常工作,pysnmp必须能够找到并加载pysnmp格式的MIB文件

  • 添加一些代码以在看到0x前缀时触发十六进制字符串解码器:

    s =     '436973636f...06d63707265'
    
    print(''.join([ chr(int(s[x:x+2], 16)) for x in range(0, len(s), 2) ]))
    
  • Cisco IOS软件,IOS-XE软件…由mcpre于2014年2月25日星期二11:36编译

    s =     '436973636f...06d63707265'
    
    print(''.join([ chr(int(s[x:x+2], 16)) for x in range(0, len(s), 2) ]))