我想使用python pysnmp模块来获取snmp数据。我使用命令行来获取SNMP数据,但现在我想使用pysnmp模块来读取它。
SNMP命令-
snmpwalk -v 1 -c public <ip address>:<port> xyz::pqr
我在用上面的命令。现在我试着做了如下的事情-
import netsnmp
def getmac():
oid = netsnmp.VarList(netsnmp.Varbind('.1.3.6.1.2.1.17.7.1.2.2.1.2'))
res = netsnmp.snmpgetbulk(oid, Version = 1, DestHost='ip',
Community='pub')
return res
print getmac()
我面临错误-导入netsnmp。没有模块netsnmp
任何人都可以给我建议如何使用python从snmp服务器获取snmp数据?
您似乎正在使用
netsnmp
模块,而不是pysnmp
。如果您想使用
pysnmp
,那么this example可能会有帮助:更新:
上面的循环将每次迭代获取一个OID值。如果您想更有效地获取数据,一种选择是在查询中填充更多的oid(以许多
ObjectType(...)
参数的形式)。或者可以切换到GETBULK PDU类型,这可以通过将
nextCmd
调用更改为bulkCmd
like this来完成。请记住,GETBULK命令支持最初是在SNMP v2c中引入的,也就是说,不能在SNMP v1上使用它。
相关问题 更多 >
编程相关推荐