我正在使用 PYSMI 库来解析 MIB,它为我提供了除了每个条目的描述之外所需的所有数据。
我在他们的网站上使用他们的示例代码行。
除了描述之外,我从名称、语法等中获取所有信息。
mibCompiler = MibCompiler(SmiStarParser(), JsonCodeGen(),
CallbackWriter(self.json_create))
# search for source MIBs here
mibCompiler.addSources(*[FileReader(x) for x in src])
# search for source MIBs at Web sites
mibCompiler.addSources(*[HttpReader(*x) for x in self.http_src])
# never recompile MIBs with MACROs
mibCompiler.addSearchers(StubSearcher(*JsonCodeGen.baseMibs))
# run recursive MIB compilation
results = mibCompiler.compile(*self.input_mibs)
我希望得到一本包含所有内容的字典,包括条目描述,但这是我找不到的唯一信息。有人知道我可能缺少什么吗?
PySMI 文档指出:
大多数 MIB 都非常冗长。它们包含许多用简单英语编写的人性化描述和说明。这些文本可能对 MIB 浏览器应用程序有用(向操作员显示这些文本),但在其他应用程序中可能没有任何意义。
为了节省空间和 CPU 时间,PySMI 默认情况下不会将这些文本包含到转换后的 MIB 中。但是,这可以通过添加 –generate-mib-texts 选项来恢复。
我追踪了代码,发现如果你像这样调用编译器:
mibCompiler.compile(*self.input_mibs, **dict(genTexts=True))
,它会生成描述。