亚洲在线久爱草,狠狠天天香蕉网,天天搞日日干久草,伊人亚洲日本欧美

為了賬號安全,請及時綁定郵箱和手機立即綁定
已解決430363個問題,去搜搜看,總會有你想問的

pysnmp不處理大字符串返回

pysnmp不處理大字符串返回

翻閱古今 2021-05-07 18:30:14
我試圖使用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個字符的限制。我發現了兩個解決此問題的方法:更改DisplayStringpysnmp / 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輸出完全不同)
查看完整描述

1 回答

?
慕田峪4524236

TA貢獻1875條經驗 獲得超5個贊

首先,這似乎是您的SNMP代理中的錯誤-它們不應溢出字符串。從這個意義上講,pysnmp做得很好。;-)

要回答您的問題:

  1. 省略號僅出現在中repr(),如果您使用str.prettyPrint()在值上顯示,則不會發生

  2. 本質上,它是一個元組序列。每個元組是(名稱,值)。因此,要打印出內容,您可以執行以下操作:

for varBind in varBinds:    
print(' = '.join([x.prettyPrint() for x in varBind]))

可以在這里找到示例。


查看完整回答
反對 回復 2021-05-18
  • 1 回答
  • 0 關注
  • 238 瀏覽
慕課專欄
更多

添加回答

舉報

0/150
提交
取消
微信客服

購課補貼
聯系客服咨詢優惠詳情

幫助反饋 APP下載

慕課網APP
您的移動學習伙伴

公眾號

掃描二維碼
關注慕課網微信公眾號