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

SNMP编程

开发平台:

C/C++

  1. /* $Id: ReceiveTrap.java,v 1.1.2.1 2004/02/21 07:21:07 ramkumar Exp $ */
  2. /*
  3.  * @(#)ReceiveTrap.java
  4.  * Copyright (c) 1996-2003 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the associated COPYRIGHTS file for more details.
  6.  */
  7. /**
  8.  * This is a tutorial example program for receiving traps 
  9.  * at the port 8001 by using the
  10.  * com.adventnet.snmp.snmp2 package of AdventNetSNMP api.
  11.  *
  12.  * The user could run this application by giving the following usage.
  13.  *  
  14.  * java ReceiveTrap
  15.  * the application will start receiving traps in the port 8001.
  16.  * 
  17.  *
  18.  *
  19.  */
  20. import java.lang.*;
  21. import java.util.*;
  22. import java.net.*;
  23. import com.adventnet.snmp.snmp2.*;
  24. public class ReceiveTrap implements SnmpClient {
  25. public static void main(String args[]) {
  26.         
  27.         // Start SNMP API
  28.         SnmpAPI api = new SnmpAPI();
  29. SnmpSession session = new SnmpSession(api); 
  30. session.addSnmpClient(new ReceiveTrap());
  31. // set local port
  32. UDPProtocolOptions option = new UDPProtocolOptions();
  33. option.setLocalPort(8001); 
  34. session.setProtocolOptions(option); 
  35. // Open the session
  36. try 
  37. {
  38.             session.open();
  39.         } 
  40. catch (SnmpException e ) 
  41. {
  42.     System.err.println("Error opening socket: "+e);
  43. }
  44. System.out.println("Waiting to receive traps in the port "+option.getLocalPort() +".......");
  45. }
  46. public boolean authenticate(SnmpPDU pdu, String community)
  47. {
  48.          return (pdu.getCommunity().equals(community));
  49. }
  50.   
  51. public boolean callback(SnmpSession session, SnmpPDU pdu, int requestID)
  52. {
  53. if(pdu == null)
  54. {
  55. return false;
  56. }
  57. if (pdu.getCommand() == SnmpAPI.TRP_REQ_MSG)
  58. {
  59. System.out.print("Trap received from: ");
  60. System.out.print(pdu.getProtocolOptions().getSessionId());
  61. System.out.println(", community: " + pdu.getCommunity());
  62. System.out.println("Enterprise: " + pdu.getEnterprise());
  63. System.out.println("Agent: " + pdu.getAgentAddress().getHostAddress());
  64. System.out.println("TRAP_TYPE: " + pdu.getTrapType());
  65. System.out.println("SPECIFIC NUMBER: " + pdu.getSpecificType());
  66. System.out.println("Time: " + pdu.getUpTime()+"nVARBINDS:");
  67. // print varbinds
  68. Enumeration e = pdu.getVariableBindings().elements();
  69. while(e.hasMoreElements())
  70. {
  71. System.out.println(((SnmpVarBind) e.nextElement()).toTagString());
  72. }
  73. }
  74. else if(pdu.getCommand() == SnmpAPI.TRP2_REQ_MSG)
  75. {
  76. System.out.print("Trap received from: ");
  77. System.out.print(pdu.getProtocolOptions().getSessionId());
  78. System.out.println(", community: " + pdu.getCommunity());
  79. Enumeration e = pdu.getVariableBindings().elements();
  80. while(e.hasMoreElements())
  81. {
  82. System.out.println(((SnmpVarBind) e.nextElement()).toTagString());
  83. }
  84. }
  85. else
  86. {
  87. System.err.println("Non trap PDU received.");
  88. }
  89. System.out.println("Continues waiting to receive traps .......");
  90. return true;
  91. }
  92. public void debugPrint(String debugOutput)
  93. {
  94.          System.out.println(debugOutput);
  95.         return;    
  96. }
  97. }