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

SNMP编程

开发平台:

C/C++

  1. /* $Id: viewTrap.java,v 1.4 2002/09/09 05:45:08 parasuraman Exp $ */
  2. /*
  3.  * viewTrap.java
  4.  * Copyright (c) 1996-2003 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the associated COPYRIGHTS file for more details.
  6.  */
  7.  /** The import clauses */ 
  8.     import java.lang.*; 
  9.     import java.io.*;
  10.     import java.util.*; 
  11.     import java.awt.*; 
  12.     import java.applet.*; 
  13.     import java.net.URL; 
  14.     import java.io.InputStream; 
  15.     import com.adventnet.snmp.snmp2.*;
  16.     import com.adventnet.management.transport.TransportException;
  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("Startnn"); 
  32.             text.setEditable(false); 
  33.             text.setFont(fontb);
  34.             setLayout(new BorderLayout()); 
  35.             add("North", header); 
  36.             add("Center", text);
  37.             
  38.             
  39.         } // end of init
  40.         /** The start method, used when applet is started */ 
  41.         public void start() {
  42. // Start SNMP API 
  43.             api = new SnmpAPI(); 
  44.             api.setDebug(true);
  45.             String mib = getParameter("mib");
  46. if (mib != null){
  47. text.appendText("Loading MIB file: " + mib + "n");
  48. // Loading MIBS - For addtional mibs to load please modify yourself.
  49. MibOperations mibOps = new MibOperations();
  50. try {
  51. mibOps.loadMibModules(mib);
  52. }
  53. catch(Exception e) {
  54. System.err.println(e.getMessage());              
  55. }
  56. }
  57.             // Open session  
  58.             SnmpSession session = new SnmpSession(api); 
  59.             session.setSASProtocol(2);
  60. session.setCallbackthread(true);
  61.             session.addSnmpClient( this);
  62. // set port to listen for traps
  63.             int port = 162;
  64. if (getParameter("port") != null) 
  65.             try {
  66. port = Integer.parseInt(getParameter("port"));
  67.             catch (NumberFormatException ex) {
  68.             System.err.println("Invalid Integer Arg"); } 
  69.             
  70.             // Open the session 
  71.             try { session.open(this); }
  72.             catch (SnmpException e) { 
  73.                 System.err.println(e); 
  74.                 System.exit(1);
  75.             }
  76. // set the port to listen for traps
  77.             if(session.getSASClient() != null)
  78.               try {
  79.                 session.getSASClient().reqTraps(port);
  80.               }
  81.               catch(IOException io){
  82.    //System.err.println("Error "+io.getMessage());
  83.   }
  84. catch(TransportException io) {
  85. System.err.println("Error "+io.getMessage()); }
  86. text.appendText("Listening for Traps on port " + port + "nn");
  87.         } // end of start()
  88.         /** The stop method, used when applet is no longer on
  89.         screen */ 
  90.         public void stop() {
  91.             if (api == null) return; 
  92. api.close();
  93. api = null;
  94.             
  95.         }
  96.         public boolean callback(SnmpSession session, SnmpPDU pdu,
  97.         int reqid) {
  98.             if (pdu.getCommand() != api.TRP_REQ_MSG) 
  99.             System.err.println("Non trap PDU received, printing anyway.");
  100.             text.appendText("Trap received from: " 
  101.             +pdu.getRemoteHost() + ", community: " + pdu.getCommunity() + "n");
  102. if(pdu.getEnterprise() != null){
  103.             text.appendText("Enterprise: " + pdu.getEnterprise() + "n");
  104. }
  105. String agent_ip_addr = SnmpIpAddress.netbToString(pdu.getAgentAddress().getAddress()) ;
  106. text.appendText("Agent: " + agent_ip_addr  + "n");
  107.            
  108.             int host_timeout=26000;
  109.             
  110.           
  111.             text.appendText("TRAP_TYPE: " + pdu.getTrapType() + "n"); 
  112.             text.appendText("SPECIFIC NUMBER: " + pdu.getSpecificType()+ "n");
  113.             text.appendText("Time: " + pdu.getUpTime() +"nVARBINDS:n");
  114.             for (Enumeration e = pdu.getVariableBindings().elements() ;
  115.             e.hasMoreElements() ;) 
  116.             text.appendText(((SnmpVarBind)
  117.             e.nextElement()).toTagString() + "n");
  118.             text.appendText("nn"); // a blank line between traps
  119.             return true; // need no more processing
  120.         } // end of callback() 
  121.         /** We need to implement the other methods in the
  122.         SnmpClient interface */
  123.         public void debugPrint(String s) {
  124.                   System.err.println(s);  
  125.         }
  126.         public boolean authenticate(SnmpPDU pdu, String community)
  127.         {
  128.           return true;
  129.           }
  130.     }