我的第一个snmp4j的调用程序

 网上这样的例子很多,我的第一个程序也是从网上DOWN下来的。但是我的程序结果没有Response信息。后来才发现应该是组件的管理监视工具没有装。我没有找到XP的。于是就跑在服务器上试了下。不多说贴代码:(需要SNMP4J的JAR包下载地址www.snmp4j.org)
import java.io.IOException;
import java.util.Vector;
import org.apache.log4j.Logger;
import org.log.snmp.util.Log4jUtil;
import org.snmp4j.CommunityTarget;
import org.snmp4j.PDU;
import org.snmp4j.Snmp;
import org.snmp4j.TransportMapping;
import org.snmp4j.event.ResponseEvent;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.OID;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.VariableBinding;
import org.snmp4j.transport.DefaultUdpTransportMapping;

public class Test {


    private static Logger log = Logger.getLogger(Test.class);

    public static void main(String[] args) {
        try {
            Address targetAddress = GenericAddress.parse("udp:192.168.100.223/161");
//            Address targetAddress = GenericAddress.parse("udp:127.0.0.1/161");
            TransportMapping transport = new DefaultUdpTransportMapping();
            Snmp snmp = new Snmp(transport);
            transport.listen();//监听

            log.info("新建管理的设备");
            CommunityTarget target = new CommunityTarget();
            log.info("设置共同体名 public");
            target.setCommunity(new OctetString("public"));//设置共同体名
            log.info("设置目标Agent地址" + targetAddress.toString());
            target.setAddress(targetAddress);//设置目标Agent地址
            log.info("设置重试次数");
            target.setRetries(2);//重试次数
            log.info("设置超时时间");
            target.setTimeout(5000);//超时设置
            log.info("设置版本");
            target.setVersion(1);//版本

            PDU request = new PDU();
            request.setType(PDU.GET);//操作类型GET
//            request.add(new VariableBinding(new OID("1.3.6.1.2.1.1.1")));
            request.add(new VariableBinding(new OID(".1.3.6.1.2.1.1.1.0")));//OID_sysDescr
            request.add(new VariableBinding(new OID(".1.3.6.1.2.1.1.2.0")));//OID_sysObjectID
            request.add(new VariableBinding(new OID(".1.3.6.1.2.1.1.3.0")));//OID_sysUpTime

            System.out.println("Request UDP:" + request);

            ResponseEvent respEvt = snmp.send(request, target);

            //读取得到的绑定变量
            if (respEvt != null && respEvt.getResponse() != null) {
                log.info("respEvt.getResponse()=" + respEvt.getResponse());
                Vector
 
 
  
   revBindings = respEvt.getResponse().getVariableBindings();
                for (int i = 0; i < revBindings.size(); i++) {
                    VariableBinding vbs = revBindings.elementAt(i);
                    System.out.println(vbs.getOid() + ":" + vbs.getVariable());
                }
            }

        } catch (IOException e) {
            e.printStackTrace();
        }
    }
}
 
 
运行结果:
init:
deps-jar:
compile-single:
run-single:
[INFO] 新建管理的设备
[INFO] 设置共同体名 public
[INFO] 设置目标Agent地址192.168.100.223/161
[INFO] 设置重试次数
[INFO] 设置超时时间
[INFO] 设置版本
Request UDP:GET[requestID=0, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.1.1.0 = Null; 1.3.6.1.2.1.1.2.0 = Null; 1.3.6.1.2.1.1.3.0 = Null]]
[INFO] respEvt.getResponse()=RESPONSE[requestID=442376585, errorStatus=Success(0), errorIndex=0, VBS[1.3.6.1.2.1.1.1.0 = Linux masdevlop 2.6.9-42.ELsmp #1 SMP Sat Aug 12 09:39:11 CDT 2006 i686; 1.3.6.1.2.1.1.2.0 = 1.3.6.1.4.1.28357.1; 1.3.6.1.2.1.1.3.0 = 12 days, 3:34:19.64]]
1.3.6.1.2.1.1.1.0:Linux masdevlop 2.6.9-42.ELsmp #1 SMP Sat Aug 12 09:39:11 CDT 2006 i686
1.3.6.1.2.1.1.2.0:1.3.6.1.4.1.28357.1
1.3.6.1.2.1.1.3.0:12 days, 3:34:19.64
成功生成(总时间:1 秒)

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值