2012-02-23 309 views
0

好了,下面的Lex Li的建议,我尝试使用其他LIB获得的Oid名称:#SnmpLib如何获取Oid(#Snmp)的名称?

这里的样本:

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

回答

0

您必须首先使用#SNMP MIB编译器(Compiler.exe)来编译您的MIB文档。如果缺少任何依赖,它会告诉。只有当所有依赖关系都存在时,编译器才能编译文档而不会出错。

编译器在模块文件夹中生成* .module文件。然后您需要将这些文件(* .module)放到C:\ Users \ Fnizz \ Desktop \ MIBS_BARCO \文件夹中。

对象注册表能够加载它们并正确执行名称解析。对象注册表不直接在MIB文档下,因此用MIB文档提供它将不起作用。

+0

好吧,我测试它。谢谢 – Florian 2012-02-28 09:40:55