在Python中打印十六进制字符串格式变量
我正在使用NET-SNMP从路由器获取CDP邻居的十六进制字符串格式的IP地址。但是,我得到的却是一些奇怪的东西。有人能帮帮我吗?谢谢!
1 个回答
1
正如alecxe提到的,当你提问时,确实需要提供更多的细节。幸运的是,我用过Python的NET-SNMP绑定,已经知道你在说什么。
要把从NET-SNMP绑定接收到的二进制数据转换成十六进制表示,可以使用Python的binascii模块。你需要的就是b2a_hex这个函数。
以下内容大部分是我记得的,所以可能不是完全准确,但应该足够让你有个大概念。
import netsnmp
import binascii
session = netsnmp.Session(Community='public', DestHost='myagentip', Version=1)
vbwithbinarydata = netsnmp.VarBind('oid_to_binary_data')
varlist = netsnmp.Varlist(vbwithbinarydata)
session.get(varlist)
print binascii.b2a_hex(vbwithbinarydata.val)