【发布时间】:2014-10-15 01:33:42
【问题描述】:
我正在尝试将 SNMP 扫描与我的应用程序集成,并已深入 Google 以尝试查找示例等。因此,我遇到了 SNMPSharpNet DLL,它允许我开始使用来自 @987654321 的 SNMP 联系设备@网站。
但是,我有两个类似的问题:
我试图参考this 网站来确定在尝试扫描 Cisco Catalyst 2960 交换机时使用什么 oID,但它什么也没返回(没有错误也没有结果)。我可以让它正常工作(拉一切)的唯一方法是使用 1 的 oID。然后开始将所有东西拉出开关,所以我可以用它作为参考来确定特定的 oID所需数据。
这让我想到了我的下一个问题.... 使用 1 的 oID 似乎确实有效,但是,通过它的一部分错误,“代理响应错误”并没有真正告诉我什么。我每次在不同设备上尝试 SNMP 时都会得到它,但它并没有撤回所有数据。
我的代码如下所示:
Sub GetNextResult()
Dim host As String = "xx.xx.xx.xx"
Dim community As String = "public"
Dim requestOid() As String
Dim result As Dictionary(Of Oid, AsnType)
Dim rootOid As Oid = New Oid("1")
Dim nextOid As Oid = rootOid
Dim keepGoing As Boolean = True
requestOid = New String() {rootOid.ToString()}
Dim snmp As SimpleSnmp = New SimpleSnmp(host, community)
snmp.SuppressExceptions = False
If Not snmp.Valid Then
Console.WriteLine("Invalid hostname/community.")
Exit Sub
End If
While keepGoing
result = snmp.GetNext(SnmpVersion.Ver1, New String() {nextOid.ToString()})
If result IsNot Nothing Then
Dim kvp As KeyValuePair(Of Oid, AsnType)
For Each kvp In result
If rootOid.IsRootOf(kvp.Key) Then
Console.WriteLine("{0}: ({1}) {2}", kvp.Key.ToString(), _
SnmpConstants.GetTypeName(kvp.Value.Type), _
kvp.Value.ToString())
nextOid = kvp.Key
Else
keepGoing = False
End If
Next
Else
Console.WriteLine("No results received.")
keepGoing = False
End If
End While
End Sub
我想我的问题是:我是否可以参考某种参考来获取特定信息所需的不同 oID 的列表?或者,如果不是,我是否可以继续使用 oID 为 1 并尝试解决为什么它会不断出错并出现一般性错误?
任何帮助表示感谢。
【问题讨论】:
标签: vb.net snmp snmpsharpnet