首页 > 代码库 > snmp4j 编程

snmp4j 编程

从www.snmp4j.org下载snmp4j的jar包,用eclipse新建一个java项目。将jar包导入工程(只有一个jar包),开始编程

一个简单的测试程序

//create target

//create pdu

//snmp.send

okay,上代码

package com.gxf.snmp;import java.io.IOException;import org.snmp4j.CommunityTarget;import org.snmp4j.PDU;import org.snmp4j.Snmp;import org.snmp4j.TransportMapping;import org.snmp4j.event.ResponseEvent;import org.snmp4j.mp.SnmpConstants;import org.snmp4j.smi.Address;import org.snmp4j.smi.GenericAddress;import org.snmp4j.smi.OID;import org.snmp4j.smi.OctetString;import org.snmp4j.smi.Variable;import org.snmp4j.smi.VariableBinding;import org.snmp4j.transport.DefaultUdpTransportMapping;//create target//create pdu//snmp sendpublic class SNMP {    public static void main(String[] args) {        //create target        Address address = GenericAddress.parse("udp:210.38.235.186/161");        CommunityTarget target = new CommunityTarget();                target.setCommunity(new OctetString("public"));        target.setAddress(address);        target.setTimeout(10000);//10s        target.setVersion(SnmpConstants.version2c);        //create pdu        PDU pduSet = createSetPdu();        PDU pudGet = createGetPdu();                sendPdu(pudGet, target);        sendPdu(pduSet, target);        sendPdu(pudGet, target);                    }    //1.3.6.1.2.1.1.5.0 sysName    //create set pdu     public static  PDU createSetPdu(){        PDU pduReturn = new PDU();                pduReturn.setType(PDU.SET);        VariableBinding variable = new VariableBinding(new OID("1.3.6.1.2.1.1.5.0"), new OctetString("testname"));        pduReturn.add(variable);                return pduReturn;    }    //create get pdu    public static PDU createGetPdu(){        PDU pduReturn = new PDU();                pduReturn.setType(PDU.GET);        VariableBinding variableBinding = new VariableBinding(new OID("1.3.6.1.2.1.1.5.0"));        pduReturn.add(variableBinding);                return pduReturn;            }    //send pdu    public static void sendPdu(PDU pdu, CommunityTarget communityTarget){        try {            TransportMapping transportMapping = new DefaultUdpTransportMapping();            transportMapping.listen();            Snmp snmp = new Snmp(transportMapping);                        ResponseEvent responseEvent = snmp.send(pdu, communityTarget);            //get reponse pdu            if(null != responseEvent){                PDU pduResponse = responseEvent.getResponse();                System.out.println("size : " + pduResponse.size());                for(int i = 0; i < pduResponse.size(); i++){                    VariableBinding variableBinding = pduResponse.get(i);                    Variable variable = variableBinding.getVariable();                    System.out.println(variable.toString());                }                System.out.println("error:" + pduResponse.getErrorStatusText());            }            else{                System.out.println("timeout ...");            }        } catch (IOException e) {                        e.printStackTrace();            System.out.println(e.getMessage());        }            }}