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

SNMP编程

开发平台:

C/C++

  1. /* $Id: snmpv3get.java,v 1.1 2002/06/15 14:42:11 ram Exp $ */
  2. /*
  3.  * @(#)snmpv3get.java
  4.  * Copyright (c) 1999 AdventNet, Inc. All Rights Reserved.
  5.  * Please read the associated COPYRIGHTS file for more details.
  6.  */
  7. /**
  8.  * This is a tutorial example program to explain how to write an application to do
  9.  * the basic SNMP operation GET using com.adventnet.snmp.snmp2 package of
  10.  * AdventNetSNMP api.
  11.  *
  12.  * The user could run this application by giving the following usage.
  13.  *  
  14.  * java Snmpv3Get hostname OID [OID]
  15.  *
  16.  * where 
  17.  *
  18.  * hostname is the RemoteHost (agent).The Format is string without double qoutes/IpAddress.
  19.  * OID is the Object Identifier. Multiple OIDs can also be given.
  20.  * The entire OID can be given or it can be given in the form of 1.1.0.
  21.  * If the oid is not starting with a dot (.) it will be prefixed by .1.3.6.1.2.1 .
  22.  * So the entire OID of 1.1.0 will become .1.3.6.1.2.1.1.1.0 .
  23.  *
  24.  * Example usage:
  25.  *
  26.  * java snmpv3get adventnet 1.1.0 1.2.0 1.3.0 1.4.0 
  27.  *
  28.  */
  29. import java.lang.*;
  30. import java.util.*;
  31. import java.net.*;
  32. import com.adventnet.snmp.snmp2.*;
  33. import com.adventnet.snmp.snmp2.usm.*;
  34. public class snmpv3get {
  35. public static void main(String args[]) {
  36.     
  37.         if( args.length < 2)
  38. {
  39. System.out.println("Usage : java Snmpv3Get hostname OID ");
  40. System.exit(0);
  41. }
  42.         
  43. // get the hostname and the OID
  44. String remoteHost = args[0];
  45.         String OID = args[1];       
  46. String userName = "testuser";
  47. int authProtocol = USMUserEntry.MD5_AUTH;
  48. String authPassword = "test";
  49. String privPassword = "test";
  50. String contextName = "testmachine";
  51. String contextID = "testing";
  52. // Start SNMP API
  53.         SnmpAPI api = new SnmpAPI();
  54. api.setDebug( true );
  55. // Open session
  56. SnmpSession session = new SnmpSession(api); 
  57. try 
  58. {
  59.             session.open();
  60.         } 
  61. catch (SnmpException e ) 
  62. {
  63.     System.err.println("Error opening socket: "+e);
  64. }
  65. //Build GET Request PDU
  66. SnmpPDU pdu = new SnmpPDU();
  67. //get the value from the command line
  68. UDPProtocolOptions option = new UDPProtocolOptions(remoteHost); 
  69. pdu.setProtocolOptions(option); 
  70. // port number of the remote agent
  71. option.setRemotePort(8001);
  72. // SNMP version
  73. session.setVersion(3);
  74. pdu.setCommand(SnmpAPI.GET_REQ_MSG); 
  75. // configure v3 parameters
  76. pdu.setUserName(userName.getBytes());
  77.         USMUtils.init_v3_params(userName, authProtocol, authPassword, privPassword, session.getPeername(), session.getRemotePort(),session);
  78.         pdu.setContextName(contextName.getBytes());
  79.         pdu.setContextID(contextID.getBytes());
  80. // add OIDs
  81. for (int i=1; i<args.length; i++)
  82. {
  83.     SnmpOID oid = new SnmpOID(args[i]);
  84.     pdu.addNull(oid);
  85. }    
  86. try 
  87. {
  88.     // Send PDU and receive response PDU
  89.      SnmpPDU result = session.syncSend(pdu);
  90.          } 
  91. catch (SnmpException e) 
  92. {
  93.      System.err.println("Error sending SNMP request: "+e);
  94. }    
  95. // print the response pdu varbinds
  96. System.out.println(result.printVarBinds());
  97. // close session
  98. session.close();
  99. // close the api thread
  100. api.close();
  101.  }
  102. }