问题我发送SNMPTRAP使用下面的命令pysnmp prettyPrint()上的十六进制数
须藤SNMPTRAP -v2c -c公共 '' .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中结合的输出值。问题是输出不包含前导零。因此所得到的输出是一样的东西
so.org.dod.internet.private.enterprises 9.9.599.1.3.1.1.1.0 = 0x34e2fd60a84
结果输出具有小于一个0原始输入。这是prettyPrint中的错误还是我在这里错过了一些东西?
编辑
这里是我的实现。这里面的回调函数
# Callback function for receiving notifications
def cbFun(snmpEngine, stateReference, contextEngineId, contextName,varBinds, cbCtx):
我有代码块是这样的:
for name, val in varBinds:
oid, label, suffix = MIBView.getNodeName(name)
oidLabel = ".".join(map(str, label))
oidSuffix = ".".join(map(str, suffix))
oid_string = oid.prettyPrint()
value = val.prettyPrint()
value = val.prettyPrint()
返回的十六进制值从两个连续的0图案去除一个0的部分。所以如果打印值使用打印值,我会得到0x34e2fd60a84。但我会除了得到0x34e2fd600a84。
目前尚不清楚pysnmp如何参与您的情况。一些代码肯定会有所帮助。另一方面,前导0是一个格式属性,它不应该改变有问题的值。 –
请参阅更新后的问题 –