我试图使用bulkget命令生成器遍历sysORTable,并使用基于示例的以下代码:
cmdGen = cmdgen.CommandGenerator()
errorIndication, errorStatus, errorIndex, varBinds = cmdGen.bulkCmd(
cmdgen.UsmUserData(user,
authKey=authKey,
privKey=privKey,
authProtocol=authProto,
privProtocol=privProto,
securityEngineId=None
),
cmdgen.UdpTransportTarget((sHost, 161)),
0 , 25,
*[cmdgen.MibVariable(oid) for oid in sOID] )
但是,从代理返回的结果超过了MIB查找强加的255个字符的限制。我发现了两个解决此问题的方法:
更改DisplayString
pysnmp / smi / mibs / SNMPv2-TC.py中最大长度的值:subtypeSpec = OctetString.subtypeSpec + ValueSizeConstraint(0, 512)
使用以下命令在cmdgen中禁用MIB查找 lookupMib=False
但是,这两个修复程序虽然允许脚本完成,但似乎会截断输出。例如:
[ObjectType(ObjectIdentity(<ObjectName value object at 0x7f1c04686cd0 tagSet <TagSet object at 0x7f1c0c88dad0 tags 0:0:6> payload [1.3.6.1.2.1.1.9.1.3.106]>), <DisplayString value object at 0x7f1c04623150 subtypeSpec <ConstraintsIntersection object at 0x7f1c04a64490 consts <ValueSizeConstraint object at 0x7f1c0756c510 consts 0, 65535>, <ValueSizeConstraint object at 0x7f1c04a64450 consts 0, 512>> tagSet <TagSet object at 0x7f1c0c88d5d0 tags 0:0:4> encoding iso-8859-1 payload [Agent capabiliti...B File name: sys]>)]
注意省略号和换行符。
两个问题:
如何解决输出的截断问题?
此消息的格式是什么,如何解压缩?(与带有键和值的标准get输出完全不同)
慕田峪4524236
相关分类