C#监控来自多个IP地址的SNMP时间戳

时间:2017-10-09 23:20:39

标签: c# ip snmp agents snmpsharpnet

我尝试在不同的网络中使用SnmpSharpNet监控多个SNMP代理(时间戳)。下面的代码使用单个IP地址,但是当我尝试连接到第二个IP地址代码失败时,我试图异步运行它,但看起来SnmpSharpNet不允许我接收数据来自多个代理商。

这是解决此问题的正确方法吗?是否有更好的替代SmnpSharpNet?

community = new OctetString("public");
// Define agent parameters class
param = new AgentParameters(community);
// Set SNMP version to 1 (or 2)
param.Version = SnmpVersion.Ver1;

for (int i = 0; i < sendsqldatalist.Count(); i++)
{
    agent = new IpAddress(sendsqldatalist[i].ip);
    target = new UdpTarget((IPAddress)agent, 161, 2000, 1);

    // Make SNMP request        
    resultlist.Add(result = (SnmpV1Packet)target.Request(pdu, param));

    // If result is null then agent didn't reply or we couldn't parse the reply.r
    if (resultlist[i] != null)
    {
        // ErrorStatus other then 0 is an error returned by 
        // the Agent - see SnmpConstants for error definitions
        if (resultlist[i].Pdu.ErrorStatus != 0)
        {
            Console.WriteLine("error on - " + sendsqldatalist[i].oid + "    " + sendsqldatalist[i].ip);
            // agent reported an error with the request
            //- Error status found here http://www.docs.snmpsharpnet.com/docs-0-9-1/
            MessageBox.Show("Error in SNMP reply from " + target.Address.ToString() + Environment.NewLine + "Error status " + result.Pdu.ErrorStatus.GetType() + Environment.NewLine + "Error Index " + result.Pdu.ErrorIndex.ToString(), "WARNING!");
        }
        else
        {
            Console.WriteLine("ConnectSNMP() CONNECTED - " + sendsqldatalist[i].oid + "  -  " + sendsqldatalist[i].ip);                           
        }                    
    }
}

提前致谢!

0 个答案:

没有答案