Custom Trap Forwarder

 

package com.adventnet.snmp.scripting;

import com.adventnet.snmp.snmp2.SnmpPDU;
import com.adventnet.snmp.snmp2.SnmpAPI;
import com.adventnet.snmp.snmp2.SnmpException;
import com.adventnet.snmp.snmp2.SnmpSession;
import com.adventnet.snmp.snmp2.UDPProtocolOptions;
import java.io.*;

public class CustomTrapForwarder implements ScriptHandler
{
	SnmpPDU pdu;
	String hostName;
	int Port;
	public CustomTrapForwarder(SnmpPDU tpdu)
	{
		pdu = tpdu;
		hostName = "172.21.160.89";
		Port = 8005;
	}	
	public void execute()
	{
		TrapForwarder fTrap = new TrapForwarder(pdu,hostName,Port);//pdu,hostname,port value
		fTrap.sendTrap();
	}
    	public void setFilePath(String path)
	{

	}
}
class TrapForwarder
{
	SnmpAPI api;
	SnmpSession session;
	SnmpPDU trappdu;
	String host;
	int port;

	public TrapForwarder(SnmpPDU pdu, String hostname, int port)
	{
		this.host = hostname;
		this.port = port;
		this.trappdu= pdu;				
	}

	public void sendTrap()
	{
	
		System.out.println("Send Trap Method");

		// Start SNMP API
       		api = new SnmpAPI();

		// Open session
       	        session = new SnmpSession(api);	

		// set community
            	if (trappdu.getCommunity() != null) 
               		session.setCommunity(trappdu.getCommunity());

		try
        	{           	           	      		
        		// set remote host
            		UDPProtocolOptions udpOpt = new UDPProtocolOptions(host);
			
			// set remote port
           		try
            		{
                		if (port != 0)
                		{
                    			udpOpt.setRemotePort(port);
                		}
                		else 
                		{
                    			udpOpt.setRemotePort(162);
                		}
            		}
           		catch(Exception ex)
            		{
                		System.err.println("Invalid port: " + port);
            		}

			trappdu.setProtocolOptions(udpOpt);
                        
            		try 
           		{
                		// open session
                		session.open(); 
                		// Send PDU            
                		session.send(trappdu);             	  
           		} 
			catch (SnmpException e1) 
			{
                		System.err.println("Sending PDU"+e1.getMessage());
            		}
            
			// close session    
    			session.close();
    			// stop api thread
    			api.close(); 			
       		}
        	catch(Exception ex)
        	{
            		System.out.println("Exception   "+ex.getMessage());
            
        	}
	}
}