如何在Python中获取SNMP表?

0 投票
1 回答
2046 浏览
提问于 2025-04-17 21:53

在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

如果有更好的方法,我会很感激!

撰写回答