Как получить название Oid (#Snmp)?
Хорошо, следуя совету Lex Li, я пытаюсь получить имя Oid, используя другую библиотеку: #SnmpLib
Вот образец:
public static void Main(string[] args)
{
string oid = ".1.3.6.1.4.1";
IObjectRegistry registry = new ReloadableObjectRegistry(@"C:\Users\Fnizz\Desktop\MIBS_BARCO\");
IObjectTree tree = registry.Tree;
var o = tree.Search(ObjectIdentifier.Convert(oid));
string textual = o.AlternativeText;
Console.WriteLine(textual);
if (o.GetRemaining().Count == 0)
{
Console.WriteLine(o.Definition.Type.ToString());
}
Console.ReadKey();
}
Но вместо того, чтобы получить значение .iso.org.dod.internet.private.enterprises
Я получаю это: .iso.3.6.1.4.1
1 ответ
Вы должны использовать #SNMP MIB Compiler (Compiler.exe), чтобы сначала скомпилировать ваши документы MIB. Если отсутствует какая-либо зависимость, он скажет. Только когда все зависимости существуют, компилятор может скомпилировать ваши документы без ошибок.
Компилятор генерирует файлы *.module в папке модулей. Затем вам нужно поместить эти файлы (*.module) в папку C:\Users\Fnizz\Desktop\MIBS_BARCO\.
Реестр объектов может загружать их и правильно выполнять разрешение имен. Реестр объектов не относится к документам MIB напрямую, поэтому заполнение его документами MIB не будет работать.