[英]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,以供應用程序進一步處理。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.