在python中打印hex-string格式变量

时间:2014-03-30 06:58:38

标签: python snmp

我正在使用NET-SNMP从路由器检索CDP邻居的十六进制格式IP地址。但是,我得到了一些奇怪的东西。有帮助吗?谢谢

1 个答案:

答案 0 :(得分: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)