2014-03-12 46 views
0

如何实现在Python + NetSnmp中获取SNMP表?如何在Python中获取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

尝试用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 

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