我的第一个snmp4j的调用程序

来源:互联网 发布:linux如何安装jdk 编辑:程序博客网 时间:2024/06/01 10:40
 网上这样的例子很多,我的第一个程序也是从网上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 秒)

原创粉丝点击