根據文檔setCmd
varBinds引用是一系列管理對象。然而,我試圖通過一個列表[(oid0, value0), (oid1, value1)]
或一個元組((oid0, value0), (oid1, value1))
或一組set([(oid0, value0), (oid1, value1)])
和他們都失敗,錯誤「太多的值解壓縮」。我需要能夠使用多個varbind發送一個設置請求。我可以成功發送每個託管對象,例如(oid0,value0)作爲單獨的setCmd
。任何想法我可以做到這一點?管理對象上的pySNMP序列setCmd
0
A
回答
1
如on the examples page所示,向setCmd()傳遞可變數量的(oid,value)元組是一種將多個var-bind添加到請求消息的方法。
下面的代碼將建立,有三個變種,結合發送SNMP SET消息:
cmdGen.setCmd(
cmdgen.CommunityData('public'),
cmdgen.UdpTransportTarget(('localhost', 161)),
('1.3.6.1.2.1.1.2.0', rfc1902.ObjectName('1.3.6.1.4.1.20408.1.1')),
('1.3.6.1.2.1.1.2.0', '1.3.6.1.4.1.20408.1.1'),
('1.3.6.1.2.1.1.5.0', rfc1902.OctetString('new system name'))
)
+0
我知道這個例子說了什麼,但正如我所說的,沒有辦法提供這種形式的變量。這個例子對於上面的固定值非常有用,但是試着將變量設置爲多個varbinds。它不起作用。 – scriptOmate
1
嘗試星號
abc = ((oid0, value0), (oid1, value1), (oid2, value2))
errorIndication, errorStatus, errorIndex, varBinds = cmdgen.CommandGenerator().setCmd(
self.authData, cmdgen.UdpTransportTarget((host_addr, 161)), *abc)
相關問題
- 1. pysnmp snmp獲取託管對象
- 2. 如何在pySNMP中使用setCmd作爲表格元素?
- 3. 使PySNMP解決對象ID
- 4. 管理對象
- 5. 管理對象
- 6. 對象的管理
- 7. 核心數據:無管理的對象上下文在我的管理對象
- 8. 如何管理/列出我的對象?
- 9. 管理對象屬性上的EXC_BAD_ACCESS
- 10. 未管理對象的內存管理
- 11. 通PySNMP getCmd的對象類型
- 12. 如何檢索pysnmp中的Counter64對象?
- 13. CoreData:其他管理對象中的管理對象爲空
- 14. 在會話級管理不可序列化的對象
- 15. 管理全局對象或列表
- 16. Doctrine 2實體管理器對象上的非對象錯誤
- 17. 管理的陣列或管理對象的陣列在Visual C++/CLI
- 18. 嵌套管理對象上下文
- 19. 在pysnmp中重複使用getCmd對象
- 20. MIB for PySNMP代理
- 21. 向非Spring管理對象提供Spring管理對象?
- 22. pysnmp命令應答器 - 通過讀取從該SNMP數據處理管理對象的值類
- 23. 使用分析管理對象(AMO)將xmla文件反序列化爲對象
- 24. 處理管理對象代理的圖形到非託管對象
- 25. 玫瑰:: DB ::對象::管理器查詢與對象ID列表
- 26. Google Appengine - id爲「com.google.appengine.api.datastore.Key:Product(」Potatoe「)」的對象由不同的對象管理器管理
- 27. VB.NET管理對象幫助
- 28. SQL Server管理對象
- 29. 對象池管理算法
- 30. 線程管理對象
我發現了一個極爲不便的方式來做到這一點。我基本上必須產生一個管理對象的字符串,並使用eval()。即set命令看起來像這樣: – scriptOmate
#ABC = [(oid0,value0),(OID1,值1),(OID2,值2)] \t mo_str = '' 在 \t每個ABC: \t mo_str = STR (各)+ '' errorIndication,ErrorStatus中,errorIndex,的varbind = cmdgen.CommandGenerator()SETCMD( self.authData, cmdgen.UdpTransportTarget((HOST_ADDR,161)), 的eval(mo_str [: - 1] )) \t \t 這是非常不方便的編程。 – scriptOmate
還有其他方法可以做到嗎? – scriptOmate