[SNMP4J] decode TRAP from debug log?

Brice Fines bfines at sermepa.es
Mon Feb 22 13:24:24 CET 2010


Hi,
Thanks.
I got it working with the following code:

import java.nio.ByteBuffer;

import org.snmp4j.CommandResponder;
import org.snmp4j.CommandResponderEvent;
import org.snmp4j.MessageDispatcher;
import org.snmp4j.MessageDispatcherImpl;
import org.snmp4j.TransportMapping;
import org.snmp4j.mp.MPv1;
import org.snmp4j.mp.MPv2c;
import org.snmp4j.mp.MPv3;
import org.snmp4j.security.SecurityProtocols;
import org.snmp4j.smi.Address;
import org.snmp4j.smi.OctetString;
import org.snmp4j.smi.TcpAddress;
import org.snmp4j.smi.UdpAddress;
import org.snmp4j.transport.DefaultTcpTransportMapping;
import org.snmp4j.transport.DefaultUdpTransportMapping;

public class Test implements CommandResponder {

        public void processPdu(CommandResponderEvent 
commandResponderEvent) {
                System.out.println(commandResponderEvent.getPDU());
        }

        public static void main(String[] args) throws Exception {
                System.out.println("start");
                final OctetString message = OctetString
                                .fromHexString(
                                                "30:81:ff:...:2d:36:30",
                                                ':');
                final Address address = new UdpAddress();
                final TransportMapping transportMapping = (address 
instanceof UdpAddress) ? new DefaultUdpTransportMapping(
                                (UdpAddress) address)
                                : new 
DefaultTcpTransportMapping((TcpAddress) address);
                final MessageDispatcher messageDispatcher = new 
MessageDispatcherImpl();
                SecurityProtocols.getInstance().addDefaultProtocols();
                final CommandResponder commandResponder = new Test();
                messageDispatcher.addCommandResponder(commandResponder);
                messageDispatcher.addMessageProcessingModel(new MPv1());
                messageDispatcher.addMessageProcessingModel(new MPv2c());
                messageDispatcher.addMessageProcessingModel(new MPv3());
                messageDispatcher.processMessage(transportMapping, 
address, ByteBuffer
                                .wrap(message.getValue()));
                System.out.println("end");
        }
}

the output is something like:
start
V1TRAP[reqestID=xxxx,timestamp=x:xx:xx.xx,enterprise=xxxxxxx,genericTrap=x,specificTrap=x, 
VBS[xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx = xxxxxx; 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx = x; 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx = xxxx; 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx = xxxxxxx; 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx = ; 
xxxxxxxxxxxxxxxxxxxxxxxxxxxxxxxx = xxxxxxxx]]
end

Regards
Brice



More information about the SNMP4J mailing list