簡體   English   中英

PySNMP可以找到OID的MIB名稱嗎?

[英]Can PySNMP find the MIB name for an OID?

我需要做的是編寫一個函數,該函數查找給定OID的MIB名稱。 例如,當我給出“ 1.3.6.1.2.1.31.1.1.1.6”作為參數時,它應該返回“ ifHCInOctets”。 我一直在搜索PySNMP文檔和堆棧溢出,但沒有找到任何東西:PySNMP是否可以實現此功能,還是我必須為MIB文件編寫解析器?

pysnmp是可能的,您無需創建MIB解析器。 ;-)

如果您遵循此示例 ,特別是以下內容:

from pysnmp.smi import builder, view, compiler

mibBuilder = builder.MibBuilder()
compiler.addMibCompiler(mibBuilder, sources=['/usr/share/snmp/mibs'])
mibBuilder.loadModules('IF-MIB', ...)
mibView = view.MibViewController(mibBuilder)

oid, label, suffix = mibView.getNodeName((1,3,6,1,2,1,31,1,1,1,6))

label變量應返回ifHCInOctets 這里的一個警告是,您需要先加載定義OID的MIB,然后才能進行查找。 OID的未解析尾巴可能會出現在suffix

另一種方法可能是使用pysmi的mibdump工具(或底層pysmi庫)將ASN.1 MIB轉換為JSON,以供應用程序進一步處理。

順便說一句,同一工具可以構建一個看起來像這樣的JSON 索引 您可以使用它將OID映射到定義它的MIB模塊上。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM