如何从 MIB 文件中获取 OID?

问题描述 投票:0回答:5

我想从管理器拥有的 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
    ...等等

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

我该怎么做?

snmp net-snmp mib
5个回答
13
投票

使用

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

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

10
投票

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

5
投票

要从正在运行的

OID
服务器中提取
SNMP
,您可能需要使用工具
snmpwalk
使用
-Ci
选项。该工具附带
Net-SNMP


1
投票

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

这只是起点。接下来还有很多编码工作。

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


0
投票
Je souhaite avoir la liste les OID pour les imprimante de la marque canon:

评论 puis-je avoir cela?

© www.soinside.com 2019 - 2024. All rights reserved.