如何在Python + NetSnmp中实现SNMP表的获取?
简单的设置和获取Python + NetSNMP正常工作:
myArgs = ['enterprises', 'set', '27142.1.1.20.1.2.1.1.1', '1', 'INTEGER']
var = netsnmp.Varbind(*myArgs)
res = netsnmp.snmpset(var, Version = 2, DestHost = 192.168.1.2, Community='private')
我想知道如何在Python中实现以下NetSNMP命令:
snmptable -v 2c -c public -Ob 172.16.67.240 .1.3.6.1.2.1.2.2
由于
答案 0 :(得分:0)
试图用Python中的getBulk解决它失败的问题。无论getBulk参数如何,只返回表的一部分,这很奇怪。
通过从Python直接调用Linux shell解决了这个问题。在out
变量中获得了正确的表格:
import subprocess
p = subprocess.Popen(['snmptable', '-v', '2c', '-c', 'public', '-Ob', '172.16.67.240', '.1.3.6.1.2.1.2.2'], stdout=subprocess.PIPE, stderr=subprocess.PIPE)
out, err = p.communicate()
print out
我会感激任何更好的想法!