C# 使用snmpsharpnet运行SNMP时出错
我在使用snmpsharpnet库运行SNMP get命令时遇到问题。我正在编写一个示例,它们提供了一个运行简单get的示例,但它出错了。我已经测试过在盒子上运行这个OID,我能够得到响应,但是我不能用这个程序 我的代码如下所示:C# 使用snmpsharpnet运行SNMP时出错,c#,snmp,snmpsharpnet,C#,Snmp,Snmpsharpnet,我在使用snmpsharpnet库运行SNMP get命令时遇到问题。我正在编写一个示例,它们提供了一个运行简单get的示例,但它出错了。我已经测试过在盒子上运行这个OID,我能够得到响应,但是我不能用这个程序 我的代码如下所示: try{ SimpleSnmp snmp = new SimpleSnmp(HOST, COMMUNITY); Pdu pdu = new Pdu(); //pdu.Type = SnmpConstants.GETNEXT; // type
try{
SimpleSnmp snmp = new SimpleSnmp(HOST, COMMUNITY);
Pdu pdu = new Pdu();
//pdu.Type = SnmpConstants.GETNEXT; // type GETNEXT
pdu.VbList.Add(".1.3.6.1.2.1.1.1.0");
Dictionary<Oid, AsnType> result = snmp.Get(SnmpVersion.Ver2,pdu); //.GetNext(pdu);
if (result == null){
Console.WriteLine("Request failed.");
}else{
foreach (KeyValuePair<Oid, AsnType> entry in result)
{
Console.WriteLine("{0} = {1}: {2}", entry.Key.ToString(), SnmpConstants.GetTypeName(entry.Value.Type),
entry.Value.ToString());
}
}
}catch (Exception ex){
Console.WriteLine("Error: " + ex + Environment.NewLine + "-------------------------------------------------------");
}
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
A first chance exception of type 'System.Net.Sockets.SocketException' occurred in System.dll
A first chance exception of type 'SnmpSharpNet.SnmpException' occurred in SnmpSharpNet.dll
The thread 0xeec has exited with code 259 (0x103).
提前谢谢 您没有收到远程主机对您发送的请求的响应。这就是套接字异常的原因。其中有3个,因为
SimpleSnmp
类的默认值是尝试3次从服务器发送和接收响应
如果将snmp
对象的Retry
属性设置为大于2
的数字,它将发送更多请求并侦听更多响应,从而生成更多异常
snmp
的标准行为是不对(a)格式错误或(b)没有正确的社区字符串的请求生成任何响应
如果您已经展示了运行这段代码得到的控制台输出是什么,我很肯定它会说
请求失败。
您可能想提及如何从相关系统(例如snmpget)获得正确的结果。确保工作示例和提供的代码之间的主机和社区字符串匹配。检查SimpleSnmp
实例的Valid
属性。默认的pdu.Type
是GET
,但是为了安全起见,您可能应该设置它。您可以添加程序的输出吗?Console.WriteLine
应在控制台中写入错误描述。锋利的snmp标记用于#snmp库。不要将其用于snmpsharpnet,因为它们是完全不同的东西。我得到的输出是上面原始帖子中显示的内容,在我的终端窗口中,我得到了“请求失败”。message感谢@Petesh的回复。很高兴知道这一点,我真的很想知道人们会如何改变这一点。今天早上我尝试为不同的设备更改主机和社区,第一次尝试时我收到了信息。然后我切换回去,三次检查主机和社区值,我仍然收到来自原始帖子的错误。@Ferbla,这表明您的代码是正确的。从您的症状来看,这听起来像(a)服务器实际上没有运行snmp服务,或者(b)防火墙干扰了您与服务器的通信。您应该使用来自不同机器的不同snmp客户端(2)检查来自同一机器的snmp访问(1)。如果它在不同的机器上工作,则表明存在连接/防火墙问题。感谢您的帮助。我将此应用程序移动到生产环境中,并通过了测试。这是一个防火墙问题。