【发布时间】:2017-03-15 14:51:41
【问题描述】:
要与 Alpha Technologies 的 Cordex 交互,我需要使用 SNMP 协议。我一直在阅读 pysnmp 的文档和示例,以使某些方面正常工作,并且在使用来自 alpha 技术的外部 MIB 文件时遇到了特殊问题。我的第一个测试如下:
from pysnmp.hlapi import *
from pysnmp.smi import builder, view, compiler, rfc1902
from pysnmp import debug
#debug.setLogger(debug.Debug('all'))
debug.setLogger(debug.Debug('msgproc', 'mibbuild'))
mibBuilder = builder.MibBuilder()
mibViewController = view.MibViewController(mibBuilder)
test = ObjectIdentity('SNMPv2-MIB', 'sysDescr').addAsn1MibSource('file:///C:/Users/SLN9000/Repositories/cordex/MIB/@mib@')
test.resolveWithMib(mibViewController)
test.getOid()
当我这样做时,它会正确打印出正确的 OID:
>>> ObjectName('1.3.6.1.2.1.1.1')
但是,在查看调试日志时,它似乎使用的是 pysnmp 库中已编译的 MIB 文件,而不是位于“C:/Users/SLN9000/Repositories/cordex/MIB/@mib 中的 ASN.1 文件” @"。 当我对来自 Alpha 技术的 MIB 文件执行类似操作时
from pysnmp.hlapi import *
from pysnmp.smi import builder, view, compiler, rfc1902
from pysnmp import debug
#debug.setLogger(debug.Debug('all'))
debug.setLogger(debug.Debug('msgproc', 'mibbuild'))
mibBuilder = builder.MibBuilder()
mibViewController = view.MibViewController(mibBuilder)
test = ObjectIdentity('03409602D__Alpha_System_Controller', 'dcpower', 1).addAsn1MibSource('file:///C:/Users/SLN9000/Repositories/cordex/MIB/')
test.resolveWithMib(mibViewController)
test.getOid()
它在步骤test.resolveWithMib(mibViewController) 失败并出现错误
pysnmp.smi.error.MibNotFoundError: 03409602D__Alpha_System_Controller 编译错误:缺失
我并不完全清楚我做错了什么。我使用的 MIB 文件可以从here 下载。任何帮助表示赞赏!
【问题讨论】: