在Python中打印十六进制字符串格式变量

0 投票
1 回答
1605 浏览
提问于 2025-04-18 00:32

我正在使用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)

撰写回答