如何从MIB文件中获取OID?

时间:2012-09-20 07:10:16

标签: snmp net-snmp mib

我想读取经理所拥有的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 ......等等。
  3. 我想扫描所有MIB文件并找到文件中的所有OID。

    我该怎么做?

4 个答案:

答案 0 :(得分:11)

使用snmptranslate - 来自net-snmp库的命令。请使用以下参数进行尝试:

-M "directory containing your MIB file"
-m ALL
-Pu
-Tso

答案 1 :(得分:5)

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

答案 2 :(得分:5)

在遇到一些问题后,我设法使用以下命令生成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

答案 3 :(得分:1)

另外两个SO QAs显示了如何在不运行正在运行的系统的情况下完成它:

这只是一个起点。那里有很多编码。

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