Friday, July 03, 2009

Generating SNMP Traps Using SNMP4j

SNMP V1 Trap Generation

-------------------------------------------------------------------------------------------------



import java.io.ByteArrayOutputStream;
import java.net.InetAddress;
import org.snmp4j.CommunityTarget;
import org.snmp4j.PDU;
import org.snmp4j.PDUv1;
import org.snmp4j.Snmp;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.IpAddress;
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;
import org.snmp4j.util.DefaultPDUFactory;


public class TrapGeneraterV1 {

public static void main(String args[]) {
try {
PDUv1 pdu = (PDUv1) DefaultPDUFactory.createPDU(SnmpConstants.version1);
pdu.setType(PDU.V1TRAP);
VariableBinding vb = new VariableBinding();
VariableBinding vb1 = new VariableBinding();
//OID oid=new OID(arg0);
vb.setOid(new OID("1.2.3.3.25.22.1"));
Variable v = new OctetString("Test Trap");
vb.setVariable(v);
vb1.setOid(new OID("1.2.3.3.25.22.1"));
Variable v1 = new OctetString("System 192.168.1.5 is Down ");
vb1.setVariable(v1);
pdu.setAgentAddress(new IpAddress(InetAddress.getLocalHost()));
pdu.add(vb);
pdu.add(vb1);
ByteArrayOutputStream out = new ByteArrayOutputStream();
pdu.encodeBER(out);
DefaultUdpTransportMapping tm = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(tm);
tm.listen();
OctetString community = new OctetString("public");
Address add = GenericAddress.parse("udp" + ":" + "192.168.1.246" + "/" + 162);
CommunityTarget target = new CommunityTarget(add, community);
target.setVersion(SnmpConstants.version1);
target.setRetries(0);
target.setTimeout(5000);
snmp.send(pdu, target);
} catch (Exception ex) {
ex.printStackTrace();
}




}
}

------------------------------------------------------------------------------------------------
SNMP V2 Traps Generation



import java.io.ByteArrayOutputStream;
import java.net.InetAddress;
import org.snmp4j.CommunityTarget;
import org.snmp4j.PDU;
import org.snmp4j.PDUv1;
import org.snmp4j.Snmp;
import org.snmp4j.mp.SnmpConstants;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.GenericAddress;
import org.snmp4j.smi.IpAddress;
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;
import org.snmp4j.util.DefaultPDUFactory;


public class TrapGeneraterV2 {

public static void main(String args[]) {
try {
PDU pdu = (PDU) DefaultPDUFactory.createPDU(SnmpConstants.version2c);
pdu.setType(PDU.TRAP);
VariableBinding vb = new VariableBinding();
//OID oid=new OID(arg0);
vb.setOid(new OID("1.2.3.3.25.22.1"));
Variable v = new OctetString("Test Trap");
vb.setVariable(v);



VariableBinding vb1 = new VariableBinding();
//OID oid=new OID(arg0);
vb1.setOid(new OID("1.2.3.3.25.22.1"));
Variable v1 = new OctetString("Device Unavailable IP : 192.168.1.61");
vb1.setVariable(v1);
pdu.add(vb1);
pdu.add(vb);



.setGenericTrap(SnmpConstants.getGenericTrapID(SnmpConstants.coldStart));

ByteArrayOutputStream out = new ByteArrayOutputStream();
pdu.encodeBER(out);

DefaultUdpTransportMapping tm = new DefaultUdpTransportMapping();
Snmp snmp = new Snmp(tm);
tm.listen();
OctetString community = new OctetString("public");
Address add = GenericAddress.parse("udp" + ":" + "192.168.1.246" + "/" + 162);
CommunityTarget target = new CommunityTarget(add, community);
target.setVersion(SnmpConstants.version2c);
target.setRetries(0);
target.setTimeout(5000);
snmp.send(pdu, target);


} catch (Exception ex) {
ex.printStackTrace();
}




}
}

No comments: