2012-02-23 305 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