使用pysnmp从MIB文本约定转换OID值对

2024-04-16 23:56:00 发布

您现在位置:Python中文网/ 问答频道 /正文

我试图编写一段代码,接受一个JSON对象,其中OID作为键,OID值作为值。例如:

{".1.3.6.1.4.1.562.29.6.2.3": "Link Down",
 ...
}

当接收到这个JSON对象时,我想使用PySNMP转换OID和OID值,但是我不知道如何根据相应MIB文件中定义的文本约定来转换OID值。在

MIB文件示例将定义:

^{pr2}$

给定一个OID和一个OID值,它遵循类似于上面的文本约定,我想翻译一下:

{"OID": 1,...}变成{}

PySNMP是否可以实现这一点?在


Tags: 文件对象代码文本json示例定义link
1条回答
网友
1楼 · 发布于 2024-04-16 23:56:00

使用pysnmp可以做到这一点:

from pysnmp.smi import builder

mibBuilder = builder.MibBuilder()
TruthValue, = mibBuilder.importSymbols('SNMPv2-TC', 'TruthValue')
print(TruthValue(1).prettyPrint()) # prints 'true'

但是,通常您必须以某种方式将oid映射到值类型(其中一些类型可能会解析为文本约定)。这可以通过在应用程序中对特定OID硬编码OID->;类型映射来实现,但更一般的解决方案是使用pysnmp MIB服务:

^{2}$

上面的示例将获取1.3.6.1.6.3.10.2.1.1.0的值类型,并将12341234值转换为关联类型。在

更新时间:

考虑使用higher-level interface到MIB服务,这是从pysnmp4.3开始提供的

相关问题 更多 >