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

用户名

我正在尝试编写一段代码,该代码接受带有OID作为键和OID值作为值的JSON对象。一个例子是:

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

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

一个示例MIB文件将定义:

TruthValue ::= TEXTUAL-CONVENTION
     STATUS       current
     DESCRIPTION
             "Represents a boolean value."
     SYNTAX       INTEGER { true(1), false(2) }

给定一个OID和一个OID值,它遵循上述文本约定,我想翻译一下:

{"OID": 1,...} 进入 {"OID": true,...}

PySNMP可以做到吗?

伊利亚·埃廷霍夫(Ilya Etingof)

pysnmp可以实现:

from pysnmp.smi import builder

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

但是,通常,您必须以某种方式将OID映射到值类型(其中一些可能会解析为TEXTUAL-VENVENTIONS)。可以通过为应用中的特定OID硬编码OID->类型映射来以即席方式进行,但是更通用的解决方案是使用pysnmp MIB服务:

from pysnmp.smi import view, builder

mibViewController = view.MibViewController(builder.MibBuilder())
varName = mibvar.MibVariable('1.3.6.1.6.3.10.2.1.1.0').loadMibs('SNMP-FRAMEWORK-MIB').resolveWithMib(mibViewController)
print(varName.getMibNode().getSyntax().clone('12341234'))

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

更新:

考虑使用自pysnmp 4.3起可用更高级别的MIB服务接口

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

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

来自分类Dev

node-js使用MIB描述文件将snmp陷阱的OID转换为文本对象标识符

来自分类Dev

PySNMP代理的MIB

来自分类Dev

如果使用SNMPv1未找到多个oid,Pysnmp将无法获取多个oid

来自分类Dev

如何在自定义SNMP MIB中获取和设置OID值

来自分类Dev

PySNMP 添加自定义 MIB

来自分类Dev

为什么Net :: SNMP :: Util :: OID不能将我所有的文本OID转换为数字OID?

来自分类Dev

带有HOST-RESOURCES-MIB的pysnmp代理

来自分类Dev

从文件加载自定义 mib 的 pySNMP 代理

来自分类Dev

使用jooq将表名称转换为OID

来自分类Dev

使用表中的值将文本输入转换为选择

来自分类Dev

使用javascript将纯文本转换为CSS值

来自分类Dev

如何使用XSLT将标签的值转换为纯文本

来自分类Dev

如何在PySNMP中标准化OID索引检索?

来自分类Dev

什么是OID,MIB?通过check_snmp检查转账金额

来自分类Dev

使用pysnmp获取输出

来自分类Dev

除了使用'by id'约定外,如何获取按钮的值?

来自分类Dev

了解从BYTEA到oid的转换

来自分类Dev

如何使用pysnmp遍历子表

来自分类Dev

pysnmp命令响应器-处理带有外部数据的获取/设置请求(非mib)

来自分类Dev

pysnmp命令响应器-处理带有外部数据的获取/设置请求(非mib)

来自分类Dev

pysnmp-从NET-SNMP-EXTEND-MIB扩展脚本获取输出?

来自分类Dev

如何使用snmp4j将值设置为Mib

来自分类Dev

使用CSS转换颤抖文本

来自分类Dev

使用Shell脚本将具有表名的文本转换为带有列名的单独值

来自分类Dev

如何使用PHP将文本输入中的值转换为Google Visualization API的数组?

来自分类Dev

如何使用innerHTML将文本转换为变量名称以打印其值?

来自分类Dev

使用参数和值将文本文件转换为ini文件

来自分类Dev

如何通过在PostgreSQL中使用when语句来防止将文本转换为布尔值?

Related 相关文章

  1. 1

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

  2. 2

    node-js使用MIB描述文件将snmp陷阱的OID转换为文本对象标识符

  3. 3

    PySNMP代理的MIB

  4. 4

    如果使用SNMPv1未找到多个oid,Pysnmp将无法获取多个oid

  5. 5

    如何在自定义SNMP MIB中获取和设置OID值

  6. 6

    PySNMP 添加自定义 MIB

  7. 7

    为什么Net :: SNMP :: Util :: OID不能将我所有的文本OID转换为数字OID?

  8. 8

    带有HOST-RESOURCES-MIB的pysnmp代理

  9. 9

    从文件加载自定义 mib 的 pySNMP 代理

  10. 10

    使用jooq将表名称转换为OID

  11. 11

    使用表中的值将文本输入转换为选择

  12. 12

    使用javascript将纯文本转换为CSS值

  13. 13

    如何使用XSLT将标签的值转换为纯文本

  14. 14

    如何在PySNMP中标准化OID索引检索?

  15. 15

    什么是OID,MIB?通过check_snmp检查转账金额

  16. 16

    使用pysnmp获取输出

  17. 17

    除了使用'by id'约定外,如何获取按钮的值?

  18. 18

    了解从BYTEA到oid的转换

  19. 19

    如何使用pysnmp遍历子表

  20. 20

    pysnmp命令响应器-处理带有外部数据的获取/设置请求(非mib)

  21. 21

    pysnmp命令响应器-处理带有外部数据的获取/设置请求(非mib)

  22. 22

    pysnmp-从NET-SNMP-EXTEND-MIB扩展脚本获取输出?

  23. 23

    如何使用snmp4j将值设置为Mib

  24. 24

    使用CSS转换颤抖文本

  25. 25

    使用Shell脚本将具有表名的文本转换为带有列名的单独值

  26. 26

    如何使用PHP将文本输入中的值转换为Google Visualization API的数组?

  27. 27

    如何使用innerHTML将文本转换为变量名称以打印其值?

  28. 28

    使用参数和值将文本文件转换为ini文件

  29. 29

    如何通过在PostgreSQL中使用when语句来防止将文本转换为布尔值?

热门标签

归档