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

SNMP编程

开发平台:

C/C++

  1. /* $Id: snmpset.java,v 1.1 2002/06/15 14:42:11 ram Exp $ */
  2. /*
  3.  * @(#)snmpset.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 to explain how to write an application to do
  9.  * the basic SNMP operation SET 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 snmpset hostname OID type value
  15.  *
  16.  * where 
  17.  *
  18.  * hostname is the RemoteHost (agent).The Format is string without double qoutes/IpAddress.
  19.  *
  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.  * type is the Object type (STRING, INTEGER, COUNTER etc)
  26.  *
  27.  * value is the object instance value to be set 
  28.  *
  29.  * Example usage:
  30.  *
  31.  * java snmpset adventnet 1.6.0 STRING testing 
  32.  *
  33.  */
  34. import java.lang.*;
  35. import java.util.*;
  36. import java.net.*;
  37. import com.adventnet.snmp.snmp2.*;
  38. public class SnmpSet  {
  39. public static void main(String args[]) {
  40.     
  41.                     if( args.length < 4)
  42. {
  43. System.out.println("Usage: java SnmpSet hostname OID type value");
  44. System.exit(0);
  45. }
  46.         
  47. // get the hostname, OID, type and value
  48.     String remoteHost = args[0];
  49.     String OID = args[1];    
  50.     String type = args[2];
  51.     String value = args [3]; 
  52. // Start SNMP API    
  53. SnmpAPI api = new SnmpAPI();
  54. // Open session 
  55. SnmpSession session = new SnmpSession(api); 
  56. // set remote Host
  57. session.setPeername(remoteHost);
  58. //open session
  59. try 
  60. {
  61.             session.open();
  62.         } 
  63. catch (SnmpException e ) 
  64. {
  65.     System.err.println("Error opening socket: "+e);
  66. }
  67. // Build set request PDU
  68. SnmpPDU pdu = new SnmpPDU();
  69. pdu.setCommand(SnmpAPI.SET_REQ_MSG );
  70.       
  71. // add OID
  72. SnmpOID oid = new SnmpOID(OID);
  73. // get the type
  74. byte dataType;
  75.         if (type.equals("STRING")) 
  76. {
  77.  dataType = SnmpAPI.STRING;
  78. }
  79. else 
  80.  System.err.println("Invalid variable type: " + type);
  81.  return;
  82. }
  83.        
  84. // create SnmpVar instance for the value and the type     
  85.         
  86. SnmpVar var = null;
  87. try 
  88. {
  89. var = SnmpVar.createVariable( value, dataType );
  90. }
  91. catch(SnmpException e)
  92. {
  93.   System.err.println("Cannot create variable: " + oid + " with value: " + value);
  94.   return;
  95. }
  96.  //create varbind  
  97. SnmpVarBind varbind = new SnmpVarBind(oid, var);
  98.  // add variable binding
  99. pdu.addVariableBinding(varbind); 
  100. // Send PDU 
  101.         try 
  102. SnmpPDU result = session.syncSend(pdu); 
  103. catch (SnmpException e) 
  104. {
  105.       System.err.println("Sending PDU"+e.getMessage());
  106. // print the response pdu varbinds
  107. System.out.println("Response PDU received from " +result.getAddress()+ ", community: " + result.getCommunity());
  108. System.out.println(result.printVarBinds());
  109. // close session
  110. session.close();
  111.         // close the api thread
  112. api.close();
  113. System.exit(0);
  114.   }
  115.     
  116. }