解析SNMP MIB文件(OID转换)


parsing SNMP MIB files (OID translation)

我正在制作一个网络设备监视器。它的一部分是PHP前端,用户可以在其中输入他感兴趣的SNMP值(SNMP oid)。我想为用户简化这个过程,所以我想创建一个简单的MIB浏览器,允许用户从树中选择值。

问题是将MIB文件读取到数据库(或至少是类似xml的格式),我可以将它们呈现给用户。解析MIB文件对我来说似乎是浪费的,所以排除了PHP的snmp_read_mib() -除非我能读取MIB一次并将OID翻译保存到DB?

另外,如果可能的话,我希望避免编写自己的解析器。:)

我找到了libsmi,但我不确定如何在这种情况下使用它…我尝试使用smidump,但只能创建一些没有有用内容的简短XML。不过我还没有尝试xmldump,因为它在Debian上(作为包)不可用,必须从源代码构建它。还有,我想是2005年的。会有帮助吗?

所以问题是:我如何从MIB文件中读取OID名称和/或其他数据(SNMP Trap信息)并将它们转换为一些准备使用的格式?

我最终使用了Mibble——我编写了一个小程序,使用这个库来解析mib并输出数据。非常简单,似乎工作得很好。

尽管如此,还是要感谢你们俩的帮助——我很感激!
smidump -f identifiers <MIB_filename>

如果MIB不符合其语法,则使用

smilint -ms <MIB_filename>

这应该可以让你开始了