2013-03-15 81 views
0

我讓Walker向網絡設備請求一些信息。從ObjectIdentifier獲取MibModule對象或實體[SharpSNMPLib]

IPEndPoint receiver = new IPEndPoint(ip, 161); 

IList<Variable> result = new List<Variable>(); 

WalkMode mode = WalkMode.WithinSubtree; 

Messenger.Walk(VersionCode.V1, receiver, new OctetString(community), new ObjectIdentifier("1.3"), result, timeout, mode); 

該代碼完全在您的設備上返回所有OID,但我需要將這些名稱轉換爲OID。 我看到了這個翻譯的例子,但它使用了MIB的編譯,我將從加載的MibModule方法Parser.ParseToModules(...)的列表中進行該翻譯。

我該如何鏈接?

回答

0

var modules = Parser.ParseToModules(docs, out errors, out warnings); var assembler = new Assembler(); assembler.Assemble(modules);

您可以使用Assembler類進一步處理模塊。 Assembler.Tree會給你一棵樹(IObjectTree),它可以用來執行OID /名稱翻譯。

+0

Tks Lex ...但...有些值無法正常工作翻譯:「SNMPv2-SMI :: mib-2.2.1.0:」 – 2013-03-18 17:07:30

+0

翻譯失敗時,您需要檢查是否加載了正確的MIB文檔。 – 2013-03-18 23:31:06