温馨提示×

C# SNMP批量获取数据怎么做

c#
小樊
104
2024-07-13 13:37:24
栏目: 编程语言

在C#中实现SNMP批量获取数据可以使用SNMP库,比如SharpSnmpLib。下面是一个简单的示例代码,演示如何使用SharpSnmpLib库来批量获取数据:

using System;
using System.Collections.Generic;
using Lextm.SharpSnmpLib;
using Lextm.SharpSnmpLib.Messaging;

class Program
{
    static void Main()
    {
        // 创建SNMP管理器
        var manager = new ObjectStore();

        // 设置要获取的OID列表
        var oids = new List<Variable>();
        oids.Add(new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.1.0"))); // 系统描述信息
        oids.Add(new Variable(new ObjectIdentifier("1.3.6.1.2.1.1.3.0"))); // 系统运行时间

        // 创建SNMP请求
        var request = new GetRequestMessage(0, VersionCode.V2, new OctetString("public"), oids);

        // 发送请求并获取响应
        var result = Messenger.Get<GetResponseMessage>("udp:127.0.0.1/161", request, 6000);

        // 处理响应
        if (result != null)
        {
            foreach (var variable in result.Pdu().Variables)
            {
                Console.WriteLine("{0} = {1}", variable.Id, variable.Data.ToString());
            }
        }
        else
        {
            Console.WriteLine("No response received.");
        }
    }
}

在这个示例中,我们首先创建了一个SNMP管理器ObjectStore,然后设置要获取的OID列表,并创建了一个SNMP请求GetRequestMessage,最后发送请求并处理响应。通过这种方式,你可以批量获取多个OID的数据。请注意,你需要替换示例代码中的IP地址、OID和Community字符串为你实际的设备信息。

0