我有许多自定义mib文件编译成pysnmp所需的格式并存储在一个目录下。我正在尝试加载它们并只拾取NotificationType()类型的对象。默认情况下,它将包括所有内容
我怎样才能做到这一点? 这就是我所说的(例如snmpAgentNotResponding事件):
from pysnmp.smi import builder, view
mibBuilder = builder.MibBuilder().loadModules('entuity-mib')
mibView = view.MibViewController(mibBuilder)
>>> a = mibView.mibBuilder.mibSymbols
>>> a.keys()
['ENTUITY-MIB', 'ASN1-REFINEMENT', 'RFC1155-SMI', 'ASN1', 'RFC-1212', 'SNMPv2-SMI', 'RFC-1215', 'ASN1-ENUMERATION', 'RFC1213-MIB']
>>> a['ENTUITY-MIB']['snmpAgentNotResponding']
NotificationType((1, 3, 6, 1, 4, 1, 2626, 1, 1, 1, 0, 655363))
我知道这不是一个好主意(基于类名进行比较),但这是我迄今为止实现这一点的方法。在
^{pr2}$这是我浏览mib文件(来自pysnmp论坛)的代码。在
oid, label, suffix = mibView.getFirstNodeName()
while True:
try:
modName, nodeDesc, suffix = mibView.getNodeLocation(oid)
print '%s::%s == %s' % (modName, nodeDesc, oid)
oid, label, suffix = mibView.getNextNodeName(oid)
except Exception, e:
print e
break
如何更好地选择通知类型?不同的mib文件对通知类型使用不同的RFC导入。这就是我困惑的地方。在
我可以想出两种方法:
坚持与NotificationType类进行比较。但是,如果您设法加载了NotificationType类的多个实例,那么这种情况可能会中断。在
如果你能分享关于MIB构造识别技术的更好的想法-我愿意接受建议。在
你的最终目标是什么?这可以用ObjectType/NotificationType类完成吗?在
相关问题 更多 >
编程相关推荐