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

SNMP编程

开发平台:

C/C++

  1. /* $Id: Sendv1Trap.java,v 1.1 2002/06/15 14:42:50 ram Exp $ */
  2. /*
  3.  * @(#)Sendv1Trap.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 an example program to explain how to write an application to send a
  9.  * v1 trap message using com.adventnet.snmp.snmp2 package of AdventNetSNMP API.
  10.  *
  11.  * The user could run this application by giving the following usage.
  12.  *  
  13.  * java Sendv1Trap hostname 
  14.  *
  15.  * where 
  16.  *
  17.  * hostname is the RemoteHost (agent).The Format is string without double quotes/IpAddress.
  18.  *
  19.  *
  20.  */
  21. import java.lang.*;
  22. import java.util.*;
  23. import java.net.*;
  24. import com.adventnet.snmp.snmp2.*;
  25. public class Sendv1Trap  
  26. {
  27. public static void main(String args[]) 
  28. {
  29.     
  30.         if( args.length == 0)
  31. {
  32. System.out.println("Usage : java SnmpSendTrap hostname");
  33. System.exit(0);
  34. }
  35.         
  36. // get the parameter
  37. String remoteHost = args[0];
  38. // Start SNMP API    
  39.         SnmpAPI api = new SnmpAPI();
  40. api.setDebug(true);
  41. SnmpSession session = new SnmpSession(api); 
  42. // set remote Host
  43. UDPProtocolOptions option = new UDPProtocolOptions(hostname);
  44. SnmpPDU pdu = new SnmpPDU();
  45. pdu.setProtocolOptions(option);
  46. // set remote port
  47. option.setRemotePort(8001);
  48. //open the session
  49. try 
  50. {
  51.             session.open();
  52.         } 
  53. catch (SnmpException e ) 
  54. {
  55.     System.err.println("Error opening socket: "+e);
  56. }
  57. // Build SNMPv1 Trap PDU
  58. pdu.setCommand(SnmpAPI.TRP_REQ_MSG );
  59.       
  60. // set the enterprise OID
  61. SnmpOID enterpriseOID = new SnmpOID(".1.3.6.1.2.1.11");
  62. //Set the Agent Address. 
  63. InetAddress hostName = InetAddress.getByName("xyz"); 
  64. pdu.setAgentAddress(hostName); 
  65. //Set Trap Type. 
  66. pdu.setTrapType(1);
  67. //Set Specific Trap Type 
  68. pdu.setSpecificType(0);
  69. //Set the up time value 
  70. pdu.setUpTime(100);
  71. // get the type
  72.         byte dataType;
  73. if (type.equals("STRING")) 
  74. {
  75. dataType = SnmpAPI.STRING;
  76. }
  77. else 
  78. System.err.println("Invalid variable type: " + type);
  79. return;
  80. }
  81.        
  82.         // create SnmpVar instance for the value and the type      
  83. SnmpVar var = null;
  84. try 
  85. {
  86. var = SnmpVar.createVariable(value, dataType);
  87. }
  88. catch(SnmpException e)
  89. {
  90. System.err.println("Cannot create variable " + oid + " with value " + value);
  91. return;
  92. }
  93. //create varbind    
  94. SnmpVarBind varbind = new SnmpVarBind(oid, var);
  95. // add variable binding
  96. pdu.addVariableBinding(varbind);
  97. // send trap PDU
  98.         try 
  99. session.send(pdu); 
  100. catch (SnmpException e) 
  101. {
  102.       System.err.println("Sending PDU "+e.getMessage());
  103. }
  104. System.exit(0);
  105. }
  106. }