viewTrap.java
上传用户:aonuowh
上传日期:2021-05-23
资源大小:35390k
文件大小:5k
源码类别:

SNMP编程

开发平台:

C/C++

  1. /* $Id: viewTrap.java,v 1.5.2.3 2009/01/28 12:55:03 prathika Exp $ */
  2. /*
  3.  * viewTrap.java
  4.  * Copyright (c) 1996-2009 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the associated COPYRIGHTS file for more details.
  6.  */
  7.  /** The import classes */ 
  8.     import com.adventnet.management.transport.TransportException;
  9.     import java.lang.*; 
  10.     import java.io.*;
  11.     import java.util.*; 
  12.     import java.awt.*; 
  13.     import java.applet.*; 
  14.     import java.net.URL; 
  15.     import java.io.InputStream; 
  16.     import com.adventnet.snmp.snmp2.*;
  17.     import com.adventnet.snmp.mibs.*;
  18.     public class viewTrap extends Applet implements SnmpClient {
  19.         /** Some of the widgets in the main applet window. */ 
  20.         TextArea text; 
  21.         Label header;
  22.         /** The SNMP API instance */ 
  23.         SnmpAPI api;
  24.         /** The applets init method sets up the GUI */ 
  25.         public void init() {
  26.             /** The font to be used */ 
  27.             Font fontb = new Font("Helvetica",Font.BOLD,16);
  28.             // Now the GUI elements
  29.             header = new Label("INCOMING TRAPS"); 
  30.             header.setFont(fontb);
  31.             text = new TextArea("Startn"); 
  32.             text.setEditable(false); 
  33.             text.setFont(fontb);
  34.             setLayout(new BorderLayout()); 
  35.             add("North", header); 
  36.             add("Center", text);
  37.             
  38.         } // end of init
  39.         /** The start method, used when applet is started */ 
  40.         public void start() {
  41.             // Start SNMP API 
  42.             api = new SnmpAPI(); 
  43.             api.setDebug(true);
  44.             String mib = getParameter("mib");
  45.             if (mib != null){
  46.                 text.append("Loading MIB file: " + mib + "n");
  47.                 // Loading MIBS - For addtional mibs to load please modify yourself.
  48.                 MibOperations mibOps = new MibOperations();
  49.                 try {
  50.                     mibOps.loadMibModules(this, mib);
  51.                 }
  52.                 catch(Exception e) {
  53.                     System.err.println(e.getMessage());              
  54.                 }               
  55.             }
  56.             // Open session  
  57.             SnmpSession session = new SnmpSession(api);
  58.             //Start the callback on a separate thread
  59.             session.setCallbackthread(true);
  60.             session.addSnmpClient( this);
  61.             // set port to listen for traps
  62.             int port = 162;
  63.             if (getParameter("PORT") != null) 
  64.             try {
  65.                 port = Integer.parseInt(getParameter("PORT"));
  66.             } 
  67.             catch (NumberFormatException ex) {
  68.             System.err.println("Invalid Integer Arg"); } 
  69.             
  70.             SASProtocolOptions sas_opt = new SASProtocolOptions();
  71.             sas_opt.setApplet(this);
  72.             session.setProtocolOptions(sas_opt);
  73.             
  74.             // Open the session 
  75.             try { session.open(); }
  76.             catch (SnmpException e) { 
  77.                 System.err.println(e); 
  78.                 System.exit(1);
  79.             }
  80.             
  81.             SASClient sasclient = sas_opt.getSASClient();
  82.             // set the port to listen for traps
  83.             if(sasclient != null) {
  84.                 try {
  85.                     sasclient.reqTraps(port);
  86.                 }
  87.                 catch(IOException io){
  88.                     System.err.println("Error "+io.getMessage());
  89.                 }
  90.                 catch(TransportException io){
  91.                     System.err.println("Error "+io.getMessage());
  92.                 }
  93.     text.append("Listening for Traps on port: " + port + "nn");
  94.             }
  95.             else {
  96.                     text.append("SAServer not Connected n");
  97.             }
  98.             
  99.         } // end of start()
  100.         /** The stop method, used when applet is no longer on
  101.         screen */ 
  102.         public void stop() {
  103.             if (api == null) return; 
  104.             api.close();
  105.             api = null;
  106.                         
  107.         }
  108.         public boolean callback(SnmpSession session, SnmpPDU pdu,
  109.         int reqid) {
  110.             text.append("Trap received from: " 
  111.             +pdu.getProtocolOptions().getSessionId() + ", community: " + pdu.getCommunity() + "n");
  112.             if(pdu.getEnterprise() != null){            
  113.             text.append("Enterprise: " + pdu.getEnterprise() + "n");
  114.             }
  115.         if(pdu.getVersion() == api.SNMP_VERSION_1)  {   
  116.             String agent_ip_addr = pdu.getAgentAddress().getHostAddress();
  117.             text.append("Agent: " + agent_ip_addr  + "n");
  118.            
  119.             text.append("TRAP_TYPE: " + pdu.getTrapType() + "n"); 
  120.             text.append("SPECIFIC NUMBER: " + pdu.getSpecificType()+ "n");
  121.             text.append("Time: " + pdu.getUpTime() +"nVARBINDS:n");
  122.         }
  123.             for (Enumeration e = pdu.getVariableBindings().elements() ;
  124.             e.hasMoreElements() ;) 
  125.             text.append(((SnmpVarBind)
  126.             e.nextElement()).toTagString() + "n");
  127.             text.append(""); // a blank line between traps
  128.             return true; // need no more processing
  129.         } // end of callback() 
  130.         /** We need to implement the other methods in the
  131.         SnmpClient interface */
  132.         public void debugPrint(String s) {
  133.             System.err.println(s);  
  134.         }
  135.         public boolean authenticate(SnmpPDU pdu, String community)
  136.         {
  137.           return true;
  138.         }
  139.     }