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

SNMP编程

开发平台:

C/C++

  1. /* $Id: viewTrap.java,v 1.1 2002/06/15 14:43:56 ram 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.start();
  44.             api.setDebug(true);
  45.             String mib = getParameter("mib");
  46. if (mib != null){
  47. text.append("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(this, mib);
  52. }
  53. catch(Exception e) {
  54. System.err.println(e.getMessage());              
  55. }
  56. }
  57.             // Open session  
  58.             SnmpSession session = new SnmpSession(api);
  59. //Start the callback on a separate thread
  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. }
  87. text.append("Listening for Traps on port: " + port + "nn");
  88. }
  89. else {
  90. text.append("SAServer not Connected n");
  91. }
  92.         } // end of start()
  93.         /** The stop method, used when applet is no longer on
  94.         screen */ 
  95.         public void stop() {
  96.             if (api == null) return; 
  97.             api.close();
  98. api = null;
  99.                         
  100.         }
  101.         public boolean callback(SnmpSession session, SnmpPDU pdu,
  102.         int reqid) {
  103.             if (pdu.getCommand() != api.TRP_REQ_MSG) 
  104.             System.err.println("Non trap PDU received, printing anyway.");
  105.             text.append("Trap received from: " 
  106.             +pdu.getRemoteHost() + ", community: " + pdu.getCommunity() + "n");
  107. if(pdu.getEnterprise() != null){
  108.             text.append("Enterprise: " + pdu.getEnterprise() + "n");
  109. }
  110. String agent_ip_addr = SnmpIpAddress.netbToString(pdu.getAgentAddress().getAddress()) ;
  111. text.append("Agent: " + agent_ip_addr  + "n");
  112.            
  113.             int host_timeout=26000;
  114. // Usage of getHostName to get the agent host name since applets can't perform DNS
  115.             String hostess=null;
  116.             try {
  117.               hostess = session.getSASClient().getHostName(agent_ip_addr,host_timeout);
  118.               text.append("Agent Host : " + hostess + "n");
  119.             }
  120.             catch(Exception e) {
  121.             }
  122.             try {
  123.               text.append("Agent Rev : " + session.getSASClient().getHostAddress(hostess,host_timeout)  + "n");
  124.             }
  125.             catch(Exception e) {
  126.               System.err.println(e.getMessage());
  127.             }
  128.           
  129.             text.append("TRAP_TYPE: " + pdu.getTrapType() + "n"); 
  130.             text.append("SPECIFIC NUMBER: " + pdu.getSpecificType()+ "n");
  131.             text.append("Time: " + pdu.getUpTime() +"nVARBINDS:n");
  132.             for (Enumeration e = pdu.getVariableBindings().elements() ;
  133.             e.hasMoreElements() ;) 
  134.             text.append(((SnmpVarBind)
  135.             e.nextElement()).toTagString() + "n");
  136.             text.append(""); // a blank line between traps
  137.             return true; // need no more processing
  138.         } // end of callback() 
  139.         /** We need to implement the other methods in the
  140.         SnmpClient interface */
  141.         public void debugPrint(String s) {
  142.             System.err.println(s);  
  143.         }
  144.         public boolean authenticate(SnmpPDU pdu, String community)
  145.         {
  146.           return true;
  147.         }
  148.     }