我正在制作网络设备监视器。部分是PHP前端,用户可以在其中输入他感兴趣的SNMP值(SNMP OID)。我想让用户更简单,因此我想创建一个简单的MIB浏览器,允许用户从树中选择值。
问题是将MIB文件读取到数据库(或至少类似XML的格式),我可以将它们呈现给用户。即时解析MIB文件对我来说似乎很浪费,以便排除PHP的snmp_read_mib() - 除非我可以读取MIB一次并将OID转换保存到DB?
另外,如果可能的话,我想避免编写自己的解析器。 :)
我找到了libsmi但是我不确定如何在这种情况下使用它...我尝试使用smidump但是只能创建一些没有用的内容的简短XML。我没有尝试过xmldump,因为它在Debian(作为包)上不可用,并且必须从源代码构建它。此外,我认为这是从2005年开始的。它有帮助吗?
所以问题是:如何从MIB文件中读取OID名称和/或其他数据(SNMP陷阱信息)并将其转换为一些即用型格式?
答案 0 :(得分:2)
我最终使用Mibble - 我写了一个小程序,它使用这个库来解析MIB并输出数据。非常简单,似乎工作得很好。
不过,谢谢你们两位试图帮助我 - 我很感激!
答案 1 :(得分:1)
smidump -f identifiers <MIB_filename>
如果MIB不符合其语法,请使用
smilint -ms <MIB_filename>
这应该让你开始