我找到了将自定义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 2-CONF:失踪,SNMPv2 2-SMI:失踪,SNMPv2 2-TC:失踪,MyMIB:失败
但是在我的**.mib文件中,我发现了所有的导入。关于为什么这不起作用有什么建议吗?
发布于 2020-02-25 11:26:05
您应该在C:/PROJECT/SNMPTest/Venv中拥有所有这些MIB文件,因为它们是整个编译过程成功所必需的依赖项。
我能预料到的一个问题是Windows路径.因此,请尝试启用pysmi调试,以确保路径不会以某种方式崩溃。
https://stackoverflow.com/questions/60380443
复制相似问题