14

我想从经理拥有的 MIB 文件中读取所有对象。

我开发了一种工具来从启用了 SNMP 的代理中获取一些数据。我想通过显示经理的 MIB 文件中的所有 OID 来增强该工具。

我正在使用 NET-SNMP 库。

我看到了以下内容:

/usr/local/share/snmp/mibs/ 

文件夹,它包含许多 MIB 文件,但我怎样才能形成它拥有的 OID 列表?

我浏览了 MIB 并查看了结构,但是如何获取 MIB 文件中提到的每个对象的 OID?

我想按如下方式列出所有 OID:

  1. SNMPv2-MIB::sysDescr.0 = .1.3.6.1.2.1.1.1.0
  2. SNMPv2-MIB::sysObjectID.0 = .1.3.6.1.2.1.1.2.0 ... ETC

我想扫描所有 MIB 文件并从文件中找到所有 OID。

我该怎么做呢?

4

4 回答 4

12

使用库中的snmptranslate-command net-snmp。尝试使用以下参数:

-M "directory containing your MIB file"
-m ALL
-Pu
-Tso
于 2013-02-22T10:24:41.447 回答
9

在遇到一些问题后,我设法使用以下命令生成了 OID。

snmptranslate -Pu -Tz -M ~/.snmp/mibs:/usr/share/snmp/mibs:/usr/share/snmp/mibs/iana:/usr/share/snmp/mibs/ietf:/usr/share/mibs/site:/usr/share/snmp/mibs:/usr/share/mibs/iana:/usr/share/mibs/ietf:/usr/share/mibs/netsnmp:`pwd` -m module_name_NOT_file_name > module_name.oid
于 2016-07-14T13:32:31.870 回答
5

要从正在运行的服务器中提取OIDs,SNMP您可能希望snmpwalk使用该-Ci选项使用该工具。该工具附带Net-SNMP.

于 2012-09-20T13:05:44.957 回答
1

其他两个 SO QA 展示了如何在不走运行系统的情况下做到这一点:

这只是起点。从那里开始有很多编码。

更新:另一个不错的工具是封装在 SNMP::MIB::Compiler 中的 perl SNMP 编译器。使用 perl 中的脚本,您可以将所有 MIB 元素/组件拉入内部数据结构,您可以从那里选择任何信息,方法是查看结构树或转储树并对转储进行后解析。

于 2012-10-15T23:08:05.113 回答