[SNMP4J] Sending SnmpV3 Traps using SNMP4J

tamil vanan tamilvanan134 at gmail.com
Tue Apr 14 08:50:34 CEST 2009


Friends...,

            i am trying to send Snmp v1, v2 and v3 traps using my own class
and using MultiThreadedTrapReceiver.java (from snmp4j package) to receive
Snmp v1, v2 and v3 traps.

            when i run trap sender (sending snmp v1, v2 and v3 traps) class,
i can only receive Snmp v1 and v2 traps, but am not getting snmpv3 trap....
i do know where am doing mistake...

            below code for sending Snmpv3 trap....


    public void sendV3Trap(String targetIP)
    {
        try {
            long start = System.currentTimeMillis();
            Address targetAddress = GenericAddress.parse("udp:" +
"192.168.0.62"+ "/" + 162);
            TransportMapping transport = new DefaultUdpTransportMapping();
            Snmp snmp = new Snmp(transport);
            USM usm = new USM(SecurityProtocols.getInstance(),
                    new OctetString(MPv3.createLocalEngineID()), 0);
            SecurityModels.getInstance().addSecurityModel(usm);
            transport.listen();
            snmp.getUSM().addUser(new OctetString("MD5DES"),
                    new UsmUser(new OctetString("MD5DES"),
                            AuthMD5.ID,
                            new OctetString("UserName"),
                            PrivDES.ID,
                            new OctetString("PasswordUser")));

            UserTarget target = new UserTarget();
            target.setAddress(targetAddress);
            target.setRetries(1);
            // set timeout to 500 milliseconds -> 2*500ms = 1s total timeout
            target.setTimeout(11500);
            target.setVersion(SnmpConstants.version3);
            target.setSecurityLevel(SecurityLevel.AUTH_PRIV);
            target.setSecurityName(new OctetString("MD5DES"));

            ScopedPDU pdu = new ScopedPDU();
            pdu.setType(ScopedPDU.TRAP);
            pdu.setContextName(new OctetString("Boss"));

            // sysUpTime
            long sysUpTime = (System.currentTimeMillis() - start) / 10;
            pdu.add(new VariableBinding(SnmpConstants.sysUpTime, new
TimeTicks(sysUpTime)));
            pdu.add(new VariableBinding(SnmpConstants.snmpTrapOID,
SnmpConstants.linkDown));

            // payload
            pdu.add(new VariableBinding(new OID("1.3.6.1.2.1.2.2.1.1.1"),
new Integer32(1)));

            // send the PDU
            snmp.send(pdu, target);

            snmp.addCommandResponder(new CommandRespListenerClazz());

            System.out.println("SNMP message sent");
        } catch (Exception e) {
            e.printStackTrace();
        }
    }


Thanks,
Tamil



More information about the SNMP4J mailing list