2016-07-01 157 views
0

我正在嘗試庫,並使用提供的示例代碼。我可以使用snmpwalk的,它工作正常: snmpget -c public localhost .1.3.6.1.2.1.1.1.0Lextm SharpSnmpLib異常{「響應錯誤」}

輸出: SNMPv2-MIB::sysContact.0 = STRING: Administrator [email protected] End of MIB

我也用的ManageEngine的MibBrowser,它工作正常,但使用的圖書館中,我得到錯誤{「錯誤響應「}當我檢查錯誤的詳細信息時,ErrorStatusNoSuchName

這裏是我的代碼 c# var result = Messenger.Get(VersionCode.V1, new IPEndPoint(IPAddress.Parse("192.168.0.101"), 161), new OctetString("public"), new List<Variable> { new Variable(new ObjectIdentifier(ObjectIdentifier.Convert(".1.3.6.1.2.1.1.4"))) }, 60000);

我到底做錯了什麼?

回答

0

我會回答我自己的問題。問題在於不同版本的SNMP,我使用的是V1,但代理使用的是V2。所以,我的代碼更改爲

c# VersionCode.V2

+0

VersionCode.V2解決了錯誤,但我仍然沒有得到正確的結果。我現在得到的NoSuchObject不是一個例外。 – Joseph

+0

http://docs.sharpsnmp.com/en/latest/tutorials/introduction.html檢查你想要執行的確切操作,然後使用正確的API請。 –

+0

@LexLi我不確定這是什麼意思,根據上面你可以看到我正在做一個GET操作。正如我所提到的,最初的問題是SNMP版本。我改爲V2,並沒有拋出異常。當我使用snmpget命令行我得到正確的結果,但我沒有得到使用庫的結果。 – Joseph

1

如你所說

的問題是與不同 版本的SNMP的,我用的是V1,但使用V2的代理了。所以我 改變了代碼

所以實際ErrorStatus應該ReadOnly首先你的代碼,但作爲SharpSnmpLib描述一般不採用約ReadOnly

只讀錯誤。 noSuchName錯誤是 相當於這個。

還要確保您的代理包含OID 1.3.6.1.2.1.1.4,因爲它看起來無效。我的事情可能是1.3.6.1.2.1.2.2.1.4