我找到了以下将自定义MIB导入PySNMP的示例脚本:
import pysnmp
from pysmi.reader import FileReader, HttpReader
from pysmi.searcher import StubSearcher
from pysmi.writer import CallbackWriter
from pysmi.parser import SmiStarParser
from pysmi.codegen import JsonCodeGen
from pysmi.compiler import MibCompiler
# from pysmi import debug
# debug.setLogger(debug.Debug('reader', 'compiler'))
inputMibs = ['***.mib']
srcDirectories = ['C:/PROJECT/SNMPTest/Venv']
def printOut(mibName, jsonDoc, cbCtx):
print('\n\n# MIB module %s' % mibName)
print(jsonDoc)
# Initialize compiler infrastructure
mibCompiler = MibCompiler(
SmiStarParser(), JsonCodeGen(), CallbackWriter(printOut)
)
# search for source MIBs here
mibCompiler.addSources(*[FileReader(x) for x in srcDirectories])
print('Step0')
# never recompile MIBs with MACROs
mibCompiler.addSearchers(StubSearcher(*JsonCodeGen.baseMibs))
print('Step1')
# run recursive MIB compilation
results = mibCompiler.compile(*inputMibs)
print('\n# Results: %s' % ', '.join(['%s:%s' % (x, results[x]) for x in results]))
返回以下内容:
结果:SNMPv2配置:缺失,SNMPv2 SMI:缺失,SNMPv2 TC:缺失,MyMIB:失败
但是在**.mib文件中,我找到了所有导入。关于为什么这不起作用有什么建议吗
您应该将所有这些MIB文件放在
C:/PROJECT/SNMPTest/Venv
中,因为它们是整个编译过程成功所必需的依赖项我可以预见的一个问题与Windows路径有关。。。因此,请尝试启用pysmi调试,以确保路径不会以某种方式崩溃
相关问题 更多 >
编程相关推荐