Python PySNMP能否找到OID的MIB名称?
我需要做的是编写一个函数来查找给定OID的MIB名称。Python PySNMP能否找到OID的MIB名称?,python,pysnmp,mib,Python,Pysnmp,Mib,我需要做的是编写一个函数来查找给定OID的MIB名称。 例如,当我给出“1.3.6.1.2.1.31.1.1.1.6”作为参数时,它应该返回“ifHCInOctets”。我一直在搜索PySNMP文档和堆栈溢出,但没有发现任何问题:这是PySNMP可以做到的,还是我必须为MIB文件编写解析器?PySNMP可以做到,您不需要创建MIB解析器。;-) 如果您遵循以下步骤,具体如下: from pysnmp.smi import builder, view, compiler mibBuilder =
例如,当我给出“1.3.6.1.2.1.31.1.1.1.6”作为参数时,它应该返回“ifHCInOctets”。我一直在搜索PySNMP文档和堆栈溢出,但没有发现任何问题:这是PySNMP可以做到的,还是我必须为MIB文件编写解析器?PySNMP可以做到,您不需要创建MIB解析器。;-) 如果您遵循以下步骤,具体如下:
from pysnmp.smi import builder, view, compiler
mibBuilder = builder.MibBuilder()
compiler.addMibCompiler(mibBuilder, sources=['/usr/share/snmp/mibs'])
mibBuilder.loadModules('IF-MIB', ...)
mibView = view.MibViewController(mibBuilder)
oid, label, suffix = mibView.getNodeName((1,3,6,1,2,1,31,1,1,1,6))
label
变量应返回ifHCInOctets
。这里需要注意的一点是,在查找OID之前,需要加载定义OID的MIB。OID的未解析尾部可能出现在后缀中
另一种方法是使用pysmi的工具(或底层库)将ASN.1 MIB转换为JSON,以便应用程序进一步处理
顺便说一句,同样的工具可以构建一个JSON,看起来像。您可以使用它将OID映射到定义它的MIB模块。你好,Ilya,我尝试了一个名为ORION-BASE-MIB的MIB的代码,它给出了以下错误>>`pysnmp.smi.error.MibNotFoundError:ORION-BASE-MIB编译错误:缺失;丢失的丢失的在MIB ORION-BASE-MIB的symbolTable中没有模块“SNMPv2 SMI”`您能提供帮助吗?您可能在搜索路径(即sources变量)中缺少SNMPv2 SMI
(和其他依赖项)。