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

SNMP编程

开发平台:

C/C++

  1. /* $Id: viewTrap.java,v 1.5 2002/09/09 05:39:09 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 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.             catch (NumberFormatException ex) {
  67.             System.err.println("Invalid Integer Arg"); } 
  68.             
  69.             // Open the session 
  70.             try { session.open(this); }
  71.             catch (SnmpException e) { 
  72.                 System.err.println(e); 
  73.                 System.exit(1);
  74.             }
  75. // set the port to listen for traps
  76.             if(session.getSASClient() != null) {
  77. try {
  78. session.getSASClient().reqTraps(port);
  79. }
  80. catch(IOException io){
  81. System.err.println("Error "+io.getMessage());
  82. }
  83. catch(TransportException io){
  84. System.err.println("Error "+io.getMessage());
  85. }
  86. text.append("Listening for Traps on port: " + port + "nn");
  87. }
  88. else {
  89. text.append("SAServer not Connected n");
  90. }
  91.         } // end of start()
  92.         /** The stop method, used when applet is no longer on
  93.         screen */ 
  94.         public void stop() {
  95.             if (api == null) return; 
  96.             api.close();
  97. api = null;
  98.                         
  99.         }
  100.         public boolean callback(SnmpSession session, SnmpPDU pdu,
  101.         int reqid) {
  102.             text.append("Trap received from: " 
  103.             +pdu.getRemoteHost() + ", community: " + pdu.getCommunity() + "n");
  104. if(pdu.getEnterprise() != null){
  105.             text.append("Enterprise: " + pdu.getEnterprise() + "n");
  106. }
  107. if(pdu.getVersion() == api.SNMP_VERSION_1) {
  108. String agent_ip_addr = SnmpIpAddress.netbToString(pdu.getAgentAddress().getAddress()) ;
  109. text.append("Agent: " + agent_ip_addr  + "n");
  110.            
  111.             int host_timeout=26000;
  112. // Usage of getHostName to get the agent host name since applets can't perform DNS
  113.             String hostess=null;
  114.             try {
  115.               hostess = session.getSASClient().getHostName(agent_ip_addr,host_timeout);
  116.               text.append("Agent Host : " + hostess + "n");
  117.             }
  118.             catch(Exception e) {
  119.             }
  120.             try {
  121.               text.append("Agent Rev : " + session.getSASClient().getHostAddress(hostess,host_timeout)  + "n");
  122.             }
  123.             catch(Exception e) {
  124.               System.err.println(e.getMessage());
  125.             }
  126.           }
  127.             text.append("TRAP_TYPE: " + pdu.getTrapType() + "n"); 
  128.             text.append("SPECIFIC NUMBER: " + pdu.getSpecificType()+ "n");
  129.             text.append("Time: " + pdu.getUpTime() +"nVARBINDS:n");
  130.             for (Enumeration e = pdu.getVariableBindings().elements() ;
  131.             e.hasMoreElements() ;) 
  132.             text.append(((SnmpVarBind)
  133.             e.nextElement()).toTagString() + "n");
  134.             text.append(""); // a blank line between traps
  135.             return true; // need no more processing
  136.         } // end of callback() 
  137.         /** We need to implement the other methods in the
  138.         SnmpClient interface */
  139.         public void debugPrint(String s) {
  140.             System.err.println(s);  
  141.         }
  142.         public boolean authenticate(SnmpPDU pdu, String community)
  143.         {
  144.           return true;
  145.         }
  146.     }