Может ли PySNMP найти имя MIB для OID? - PullRequest
0 голосов
/ 14 декабря 2018

Что мне нужно сделать, это написать функцию, которая находит имя MIB для данного OID.Например, когда я даю '1.3.6.1.2.1.31.1.1.1.6' в качестве аргумента, он должен возвращать 'ifHCInOctets'.Я искал документацию PySNMP и переполнение стека, но ничего не нашел так: возможно ли это с PySNMP или мне нужно написать анализатор для файлов MIB?

1 Ответ

0 голосов
/ 14 декабря 2018

Это возможно с 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.Одно предостережение: вам нужно загрузить MIB, который определяет OID, прежде чем вы сможете его найти.Неразрешенный хвост OID может появиться в suffix.

Другой подход может заключаться в использовании инструмента pysmi mibdump (или базовой библиотеки pysmi ) для включения ASN.1 MIB в JSON для дальнейшей обработки вашим приложением.

Кстати, этот же инструмент может создать JSON index , который будет выглядеть как this .Вы можете использовать его для сопоставления вашего OID с модулем MIB, где он определен.

...