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

SNMP编程

开发平台:

C/C++

  1. /*
  2.  * @(#)SnmpGet_tcp.java
  3.  * Copyright (c) 2000 AdventNet, Inc. All Rights Reserved.
  4.  * Please read the associated COPYRIGHTS file for more details.
  5.  */
  6. /**
  7.  * This is a tutorial example program to explain how to write an application to do
  8.  * the basic SNMP operation GET using com.adventnet.snmp.snmp2 package of
  9.  * AdventNetSNMP api. This example explains how to plug-in the independent transport 
  10.  * provider framework in the applications. It uses tcp for communication instead of the 
  11.  * default UDP.
  12.  *
  13.  * The user could run this application by giving the following usage.
  14.  *  
  15.  * java SnmpGet_tcp hostname OID [OID]
  16.  *
  17.  * where 
  18.  *
  19.  * hostname is the RemoteHost (agent).The Format is string without double qoutes/IpAddress.
  20.  * OID is the Object Identifier. Multiple OIDs can also be given.
  21.  * The entire OID can be given or it can be given in the form of 1.1.0.
  22.  * If the oid is not starting with a dot (.) it will be prefixed by .1.3.6.1.2.1 .
  23.  * So the entire OID of 1.1.0 will become .1.3.6.1.2.1.1.1.0 .
  24.  *
  25.  * Please note that the remote agent should be able to access the tcp packets.
  26.  *
  27.  * Example usage:
  28.  *
  29.  * java SnmpGet_tcp adventnet 1.1.0 1.2.0 1.3.0 1.4.0 
  30.  *
  31.  */
  32. import java.lang.*;
  33. import java.util.*;
  34. import java.net.*;
  35. import com.adventnet.snmp.snmp2.*;
  36. public class SnmpGet {
  37. public static void main(String args[]) {
  38.     
  39.             if( args.length < 2)
  40. {
  41. System.out.println("Usage : java SnmpGet hostname OID ");
  42. System.exit(0);
  43. }
  44.         
  45. // Take care of getting the hostname and the OID
  46. String remoteHost = args[0];
  47.         String OID = args[1];       
  48.  // Start SNMP API
  49.         SnmpAPI api;
  50.         api = new SnmpAPI();
  51.         api.start();
  52. api.setDebug( true );
  53. // Open session
  54. SnmpSession session = new SnmpSession(api); 
  55. //choose your transport provider
  56. session.setProtocol(session.TRANSPORT_PROVIDER);
  57. // set the protocol to the TCP
  58. ProtocolOptions options = new TcpProtocolOptionsImpl(remoteHost, 161, 0);
  59. session.setProtocolOptions(options);   
  60. try {
  61.             session.open();
  62.         } catch (SnmpException e ) {
  63.     System.err.println("Error opening socket: "+e);
  64.    }
  65.     
  66. // set remote Host 
  67. //session.setPeername(remoteHost);
  68. // Build Get request PDU
  69. SnmpPDU pdu = new SnmpPDU();
  70. pdu.setCommand( api.GET_REQ_MSG );
  71. // add OIDs
  72. for (int i=1; i<args.length; i++){
  73.     SnmpOID oid = new SnmpOID(args[i]);
  74.     pdu.addNull(oid);
  75. }    
  76. try {
  77.     // Send PDU and receive response PDU
  78.      pdu = session.syncSend(pdu);
  79.          } catch (SnmpException e) {
  80.      System.err.println("Error sending SNMP request: "+e);
  81.    }    
  82. // print the response pdu varbinds
  83. System.out.println(pdu.printVarBinds());
  84.  // close session
  85. session.close();
  86. // stop api thread
  87. api.close();
  88.  }
  89. }