在Python中处理SNMP表的优雅且可移植的方法

在Python中处理SNMP表的优雅且可移植的方法,python,snmp,net-snmp,pysnmp,Python,Snmp,Net Snmp,Pysnmp,我一直在寻找这个,但还没有找到任何适合我的需要。我想要一种优雅的方式来使用Python中的SNMP表。我已经研究了pysnmp和netsnmppython绑定 目前,我正在使用网络snmp绑定,因为它似乎更容易查询数据,而且在CentOS6上已经可以很容易地使用它,因为软件必须在CentOS6上运行(Python 2.6),但我也不介意安装pysnmp 我想要的是任何类型的对象,我可以将表结构的重要数据交给它们,例如表基OID、索引OID以及我感兴趣的列的名称和OID。我想重新获得一个数据结构,

我一直在寻找这个,但还没有找到任何适合我的需要。我想要一种优雅的方式来使用Python中的SNMP表。我已经研究了pysnmp和netsnmppython绑定

目前,我正在使用网络snmp绑定,因为它似乎更容易查询数据,而且在CentOS6上已经可以很容易地使用它,因为软件必须在CentOS6上运行(Python 2.6),但我也不介意安装pysnmp

我想要的是任何类型的对象,我可以将表结构的重要数据交给它们,例如表基OID、索引OID以及我感兴趣的列的名称和OID。我想重新获得一个数据结构,它可以很容易地遍历行,获取任何列的条目列表等等,而不必再费心处理OID之类的东西,真正地将所有这些抽象出来

这样做的目的是,我希望使用尽可能少的代码来查询SNMP表中的所有数据并使用它,我希望所有的锅炉板代码都在一个模块中,这样我就可以在几行代码中获取并使用SNMP表的数据

你建议我做什么?基于pysnmp或netsnmp编写自己的抽象?pysnmp的高级API中有什么我可能错过的吗?也许是一个python模块,它抽象了上面提到的其中一个,以使访问数据更容易


非常高兴听到您的建议。

说到pysnmp,您可能会对以下两个组件感兴趣:

  • 表示MIB对象和处理索引和值类型的类
  • ObjectType实例上的高级操作
在这两个组件之上,您可以通过MIB名称和符号索引来引用/MIB对象,例如,不知道所涉及的OID。ObjectType类将在其人性化表示和基本SNMP类型之间转换值


pysnmp库可以在Python 2.6上运行。

说到pysnmp,您可能会对以下两个组件感兴趣:

  • 表示MIB对象和处理索引和值类型的类
  • ObjectType实例上的高级操作
在这两个组件之上,您可以通过MIB名称和符号索引来引用/MIB对象,例如,不知道所涉及的OID。ObjectType类将在其人性化表示和基本SNMP类型之间转换值


pysnmp库可以在Python 2.6上工作。

RFC3416等标准定义了执行“表遍历”的方法。你应该检查你使用的图书馆是否有类似的东西。否则,它们仍然很容易实现。RFC3416等标准定义了执行“表遍历”的方法。你应该检查你使用的图书馆是否有类似的东西。如果没有,它们仍然很容易实现。