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

SNMP编程

开发平台:

C/C++

  1. /*
  2. $Id: SetValues.src,v 1.7.6.3 2008/11/05 18:37:15 prathika Exp $
  3. */
  4. /*
  5.  * @(#)SetValues.java
  6.  * Copyright (c) 1996-2002 AdventNet, Inc. All Rights Reserved.
  7.  * Please read the associated COPYRIGHTS file for more details.
  8.  */
  9. import java.lang.*;
  10. import com.adventnet.snmp.snmp2.*;
  11. import com.adventnet.snmp.snmp2.usm.*;
  12. public class SetValues {
  13. boolean usage_error = false;
  14. private static final int COMMUNITY = 1;
  15. private static final int WRITE_COMMUNITY = 2;
  16. private static final int PORT = 3;
  17. private static final int RETRIES = 4;
  18. private static final int TIMEOUT = 5;
  19. //MIBS = 6 is for MIB option );
  20. private static final int VERSION = 7;
  21. private static final int USER_NAME = 8;
  22. private static final int AUTH_PROTOCOL = 9;
  23. private static final int AUTH_PASSWORD = 10;
  24. private static final int PRIV_PASSWORD = 11;
  25. private static final int CONTEXT_NAME = 12;
  26. private static final int CONTEXT_ID = 13;
  27. private static int PRIV_PROTOCOL;
  28. String userName = new String("");
  29. int authProtocol = USMUserEntry.NO_AUTH;
  30. int privProtocol = USMUserEntry.NO_PRIV;
  31. String authPassword = new String ("");
  32. String privPassword = new String ("");
  33. String contextName = new String ("");
  34. String contextID = new String ("");
  35. String[] val;
  36. public SetValues(SnmpSession session, String values[]) {
  37. val =new String [19];
  38. if(values.length==19){
  39. PRIV_PROTOCOL=18;
  40. val=values ;
  41. if(values[PRIV_PROTOCOL] == null ){
  42. values[PRIV_PROTOCOL] = "DES";
  43. }
  44. }
  45. else
  46. {
  47. System.arraycopy(values,0,val,0,values.length);
  48. PRIV_PROTOCOL= values.length-1;
  49. }
  50.     // set community & writecommunity
  51.         if (values[COMMUNITY] != null)
  52. session.setCommunity( values[COMMUNITY] );
  53. if (values[WRITE_COMMUNITY] != null)
  54. session.setWriteCommunity( values[WRITE_COMMUNITY] );
  55.         //set remote Port, timeout,retries if needed.
  56.     try {
  57.         if (values[PORT] != null)
  58.                 session.setRemotePort( Integer.parseInt(values[PORT]) );
  59.         if (values[RETRIES] != null)
  60.                 session.setRetries( Integer.parseInt(values[RETRIES]) );
  61.         if (values[TIMEOUT] != null)
  62.                 session.setTimeout( Integer.parseInt(values[TIMEOUT]) );
  63.     }
  64.     catch (NumberFormatException ex) {
  65.         System.err.println("Invalid Integer Arg : " + ex.getMessage());
  66. System.exit(1);
  67.     }
  68. if(values[VERSION] != null) {
  69. if(values[VERSION].equals("v2"))
  70. session.setVersion( SnmpAPI.SNMP_VERSION_2C ) ;
  71. else if(values[VERSION].equals("v1"))
  72. session.setVersion( SnmpAPI.SNMP_VERSION_1 );
  73. else if(values[VERSION].equals("v3"))
  74. session.setVersion( SnmpAPI.SNMP_VERSION_3 );
  75. else {
  76. System.out.println("Invalid Version Number");
  77. usage_error = true;
  78. }
  79. }
  80. if(session.getVersion()==SnmpAPI.SNMP_VERSION_3) {
  81. if (values[USER_NAME] != null) {
  82. userName = values[USER_NAME];
  83. if ((values[AUTH_PROTOCOL] != null) && (values[AUTH_PASSWORD] != null) && (val[PRIV_PROTOCOL] != null)) {
  84. if(values[AUTH_PROTOCOL].equals("SHA"))
  85. {
  86. authProtocol = USMUserEntry.SHA_AUTH;
  87. }
  88. else if(values[AUTH_PROTOCOL].equals("MD5"))
  89. {
  90. authProtocol = USMUserEntry.MD5_AUTH;
  91. }
  92. else
  93. {
  94. System.out.println("The AuthProtocol should be " +
  95. "either MD5 or SHA");
  96. usage_error = true;
  97. }
  98. if(values[PRIV_PROTOCOL].equals("AES-128"))
  99. {
  100. privProtocol = USMUserEntry.CFB_AES_128;
  101. }
  102. else if(values[PRIV_PROTOCOL].equals("AES-192"))
  103. {
  104. privProtocol = USMUserEntry.CFB_AES_192;
  105. }
  106. else if(values[PRIV_PROTOCOL].equals("AES-256"))
  107. {
  108. privProtocol = USMUserEntry.CFB_AES_256;
  109. }
  110. else if(values[PRIV_PROTOCOL].equals("3DES"))
  111. {
  112. privProtocol = USMUserEntry.CBC_3DES;
  113. }
  114. else if(values[PRIV_PROTOCOL].equals("DES"))
  115. {
  116. privProtocol = USMUserEntry.CBC_DES;
  117. }
  118. else
  119. {
  120. System.out.println("The PrivProtocol should be " +
  121. "either AES or DES");
  122. usage_error = true;
  123. }
  124. if(authProtocol==USMUserEntry.NO_AUTH)
  125. {
  126. System.err.println("Enter authentication protocol");
  127. usage_error = true;
  128. }
  129. authPassword = values[AUTH_PASSWORD];
  130. if (values[PRIV_PASSWORD] != null)
  131. {
  132. privPassword = values[PRIV_PASSWORD];
  133. }
  134. }
  135. else if ((values[AUTH_PROTOCOL] != null) && (values[AUTH_PASSWORD] != null)) {
  136. if(values[AUTH_PROTOCOL].equals("SHA"))
  137. {
  138. authProtocol = USMUserEntry.SHA_AUTH;
  139. }
  140. else if(values[AUTH_PROTOCOL].equals("MD5"))
  141. {
  142. authProtocol = USMUserEntry.MD5_AUTH;
  143. }
  144. else
  145. {
  146. System.out.println("The AuthProtocol should be " +
  147. "either MD5 or SHA");
  148. usage_error = true;
  149. }
  150. if(authProtocol==USMUserEntry.NO_AUTH)
  151. {
  152. System.err.println("Enter authentication protocol");
  153. usage_error = true;
  154. }
  155. authPassword = values[AUTH_PASSWORD];
  156. if (values[PRIV_PASSWORD] != null) 
  157. {
  158. privPassword = values[PRIV_PASSWORD];
  159. }
  160. }
  161. else if ((values[AUTH_PROTOCOL] != null) || (values[AUTH_PASSWORD] != null) || (values[PRIV_PASSWORD] != null)) {
  162. usage_error = true;
  163. }
  164. if (values[CONTEXT_NAME] != null) {
  165. contextName = values[CONTEXT_NAME];
  166. }
  167. if (values[CONTEXT_ID] != null) {
  168. contextID = values[CONTEXT_ID];
  169. }
  170. }
  171. else {
  172. System.err.println("UserName Missing");
  173. usage_error = true;
  174. }
  175. }
  176. }
  177. public SetValues(SnmpPDU pdu, String[] values)
  178. {
  179. val =new String [19];
  180. if(values.length==19){
  181. PRIV_PROTOCOL=18;
  182. val=values ;
  183. if(values[PRIV_PROTOCOL] == null ){
  184. values[PRIV_PROTOCOL] = "DES";
  185. }
  186. }
  187. else
  188. {
  189. System.arraycopy(values,0,val,0,values.length);
  190. PRIV_PROTOCOL=values.length-1;
  191. }
  192.     // set community & writecommunity
  193.         if (values[COMMUNITY] != null)
  194. pdu.setCommunity( values[COMMUNITY] );
  195. if (values[WRITE_COMMUNITY] != null)
  196. pdu.setWriteCommunity( values[WRITE_COMMUNITY] );
  197.         //set remote Port, timeout,retries if needed.
  198.     try {
  199.         if (values[RETRIES] != null)
  200.                 pdu.setRetries( Integer.parseInt(values[RETRIES]) );
  201.         if (values[TIMEOUT] != null)
  202.                 pdu.setTimeout( Integer.parseInt(values[TIMEOUT]) );
  203.     }
  204.     catch (NumberFormatException ex) {
  205.         System.err.println("Invalid Integer Arg : " + ex.getMessage());
  206. System.exit(1);
  207.     }
  208. if(values[VERSION] != null) {
  209. if(values[VERSION].equals("v2"))
  210. pdu.setVersion( SnmpAPI.SNMP_VERSION_2C ) ;
  211. else if(values[VERSION].equals("v1"))
  212. pdu.setVersion( SnmpAPI.SNMP_VERSION_1 );
  213. else if(values[VERSION].equals("v3"))
  214. pdu.setVersion( SnmpAPI.SNMP_VERSION_3 );
  215. else {
  216. System.out.println("Invalid Version Number");
  217. usage_error = true;
  218. }
  219. }
  220. if(pdu.getVersion()==SnmpAPI.SNMP_VERSION_3) {
  221. if (values[USER_NAME] != null) {
  222. userName = values[USER_NAME];
  223. if ((values[AUTH_PROTOCOL] != null) && (values[AUTH_PASSWORD] != null) && (val[PRIV_PROTOCOL] != null)) {
  224. if(values[AUTH_PROTOCOL].equals("SHA"))
  225. {
  226. authProtocol = USMUserEntry.SHA_AUTH;
  227. }
  228. else if(values[AUTH_PROTOCOL].equals("MD5"))
  229. {
  230. authProtocol = USMUserEntry.MD5_AUTH;
  231. }
  232. else
  233. {
  234. System.out.println("The AuthProtocol should be " +
  235. "either MD5 or SHA");
  236. usage_error = true;
  237. }
  238. if(values[PRIV_PROTOCOL].equals("AES-128"))
  239. {
  240. privProtocol = USMUserEntry.CFB_AES_128;
  241. }
  242. else if(values[PRIV_PROTOCOL].equals("AES-192"))
  243. {
  244. privProtocol = USMUserEntry.CFB_AES_192;
  245. }
  246. else if(values[PRIV_PROTOCOL].equals("AES-256"))
  247. {
  248. privProtocol = USMUserEntry.CFB_AES_256;
  249. }
  250. else if(values[PRIV_PROTOCOL].equals("3DES"))
  251. {
  252. privProtocol = USMUserEntry.CBC_3DES;
  253. }
  254. else if(values[PRIV_PROTOCOL].equals("DES"))
  255. {
  256. privProtocol = USMUserEntry.CBC_DES;
  257. }
  258. else
  259. {
  260. System.out.println("The PrivProtocol should be " +
  261. "either AES or DES");
  262.   usage_error = true;
  263. }
  264. if(authProtocol==USMUserEntry.NO_AUTH)
  265. {
  266. System.err.println("Enter authentication protocol");
  267. usage_error = true;
  268. }
  269. authPassword = values[AUTH_PASSWORD];
  270. if (values[PRIV_PASSWORD] != null)
  271. {
  272. privPassword = values[PRIV_PASSWORD];
  273. }
  274. }
  275. else if ((values[AUTH_PROTOCOL] != null) && (values[AUTH_PASSWORD] != null)) {
  276. if(values[AUTH_PROTOCOL].equals("SHA"))
  277. {
  278. authProtocol = USMUserEntry.SHA_AUTH;
  279. }
  280. else if(values[AUTH_PROTOCOL].equals("MD5"))
  281. {
  282. authProtocol = USMUserEntry.MD5_AUTH;
  283. }
  284. else
  285. {
  286. System.out.println("The AuthProtocol should be " +
  287. "either MD5 or SHA");
  288. usage_error = true;
  289. }
  290. if(authProtocol==USMUserEntry.NO_AUTH)
  291. {
  292. System.err.println("Enter authentication protocol");
  293. usage_error = true;
  294. }
  295. authPassword = values[AUTH_PASSWORD];
  296. if (values[PRIV_PASSWORD] != null) 
  297. {
  298. privPassword = values[PRIV_PASSWORD];
  299. }
  300. }
  301. else if ((values[AUTH_PROTOCOL] != null) || (values[AUTH_PASSWORD] != null) || (values[PRIV_PASSWORD] != null)) {
  302. usage_error = true;
  303. }
  304. if (values[CONTEXT_NAME] != null) {
  305. contextName = values[CONTEXT_NAME];
  306. }
  307. if (values[CONTEXT_ID] != null) {
  308. contextID = values[CONTEXT_ID];
  309. }
  310. }
  311. else {
  312. System.err.println("UserName Missing");
  313. usage_error = true;
  314. }
  315. }
  316. }
  317. }