如何获得Oid的名字(#Snmp)?

时间:2012-02-23 11:12:34

标签: c# snmp

好的,按照Lex Li的建议,我尝试使用其他lib获取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 个答案:

答案 0 :(得分:0)

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

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

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