如何在Python中获取SNMP表

时间:2014-03-12 05:43:53

标签: python snmp net-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')

我想知道如何在Python中实现以下NetSNMP命令:

snmptable -v 2c -c public -Ob 172.16.67.240 .1.3.6.1.2.1.2.2

由于

1 个答案:

答案 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

我会感激任何更好的想法!