十六进制numb上的pysnmp prettyPrint()问题

2024-05-13 21:23:23 发布

您现在位置:Python中文网/ 问答频道 /正文

我使用以下命令发送snmptrap

sudo snmptrap -v2c -c public '' .1.2.3.4.5.6.7.8.9 ifIndex i 2 ifAdminStatus i 1 1.3.6.1.4.1.9.9.599.1.3.1.1.1.0 x "0x34e2fd600a84"

我使用prettyPrint()来格式化var binds中的输出值。问题是输出不包含前导零。因此,结果输出类似于

so.org.dod.internet.private.enterprises 9.9.599.1.3.1.1.1.0 = 0x34e2fd60a84

结果输出比原始输入少一个0。这是打印前的错误还是我漏掉了什么?在

编辑

这是我的实现。在这个回调函数中

# Callback function for receiving notifications
def cbFun(snmpEngine, stateReference, contextEngineId, contextName,varBinds, cbCtx):

我有这样的代码块:

^{pr2}$

部分value = val.prettyPrint()返回从两个连续的0模式中删除一个0的十六进制值。所以如果使用print value打印值,我会得到0x34e2fd60a84。但我只想得到0x34e2fd600a84。在


Tags: org命令sovaluevarsudopublic前导
1条回答
网友
1楼 · 发布于 2024-05-13 21:23:23

这是pyasn1中的一个bug,它在0.1.3版本中得到了修复(当前版本是0.1.9)。如果由于某些原因无法升级,则需要升级pyasn1或monkey-patch-it。在

相关问题 更多 >