如何在Python中获取SNMP表?
在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')
我想知道怎么把下面这个NetSNMP命令用Python实现:
snmptable -v 2c -c public -Ob 172.16.67.240 .1.3.6.1.2.1.2.2
谢谢
1 个回答
0
我尝试用Python中的getBulk来解决这个问题,但没成功。它的表现很奇怪,只返回了表格的一部分,不管我怎么设置getBulk的参数。最后我直接从Python调用了Linux的命令行,结果在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
如果有更好的方法,我会很感激!