利用apache commons-net 开源包,使用telnet方式获取AIX主机信息

一。AIX简介

AIX全名为Advanced Interactive Executive,俗称“An IBM uniX”或“Advanced IBM uniX”。

作为综合评价第一的unix操作系统(D.H. Brown咨询公司,1998年 ),AIX是真正的第二代unix,具有性能卓越、易于使用、扩充性强、适合企业关键应用等众多特点。

支持300种以上的IBM软件和超过13000家独立软件厂商的软件产品。

是非常优秀的操作系统

在银行、电力系统、电信移动等企业应用很广泛

下面,我们介绍下对AIX系统的信息采集

二。

下面是一个利用apache commons-net 开源包, 使用telnet方式连接的工具类

实现对AIX主机信息的采集

因为提示符已经写死了,如果采用本例,请先按照自己的真实环境修改提示符和用户名和密码 等基本信息

  1. packagetest.collector.telnet;
  2. importjava.io.InputStream;
  3. importjava.io.PrintStream;
  4. importorg.apache.commons.net.telnet.TelnetClient;
  5. /**
  6. *利用apachenet开源包,使用telnet方式获取AIX主机信息
  7. *
  8. *@authorzhaoyl
  9. *@date20008.7.21
  10. *@version1.2
  11. */
  12. publicclassNetTelnet{
  13. //Telnet对象
  14. privateTelnetClienttelnet=newTelnetClient();
  15. privateInputStreamin;
  16. privatePrintStreamout;
  17. //提示符。具体请telnet到AIX主机查看
  18. privatecharprompt='#';
  19. //telnet端口
  20. privateStringport;
  21. //用户
  22. privateStringuser;
  23. //密码
  24. privateStringpassword;
  25. //IP地址
  26. privateStringip;
  27. publicNetTelnet(){
  28. try{
  29. //AIX主机IP
  30. this.ip="10.1.2.222";
  31. this.password="loeisdke";
  32. this.user="whdiwpasdq232sd2323";
  33. this.port="23";
  34. telnet.connect(ip,Integer.parseInt(port));
  35. in=telnet.getInputStream();
  36. out=newPrintStream(telnet.getOutputStream());
  37. //登录
  38. readUntil("login:");
  39. write(user);
  40. readUntil("Password:");
  41. write(password);
  42. readUntil(prompt+"");
  43. }catch(Exceptione){
  44. e.printStackTrace();
  45. }
  46. }
  47. /**
  48. *读取分析结果
  49. *
  50. *@parampattern
  51. *@return
  52. */
  53. publicStringreadUntil(Stringpattern){
  54. try{
  55. charlastChar=pattern.charAt(pattern.length()-1);
  56. StringBuffersb=newStringBuffer();
  57. charch=(char)in.read();
  58. while(true){
  59. sb.append(ch);
  60. if(ch==lastChar){
  61. if(sb.toString().endsWith(pattern)){
  62. returnsb.toString();
  63. }
  64. }
  65. ch=(char)in.read();
  66. }
  67. }catch(Exceptione){
  68. e.printStackTrace();
  69. }
  70. returnnull;
  71. }
  72. /**
  73. *写
  74. *
  75. *@paramvalue
  76. */
  77. publicvoidwrite(Stringvalue){
  78. try{
  79. out.println(value);
  80. out.flush();
  81. }catch(Exceptione){
  82. e.printStackTrace();
  83. }
  84. }
  85. /**
  86. *向目标发送命令字符串
  87. *
  88. *@paramcommand
  89. *@return
  90. */
  91. publicStringsendCommand(Stringcommand){
  92. try{
  93. write(command);
  94. returnreadUntil(prompt+"");
  95. }catch(Exceptione){
  96. e.printStackTrace();
  97. }
  98. returnnull;
  99. }
  100. /**
  101. *关闭连接
  102. *
  103. */
  104. publicvoiddisconnect(){
  105. try{
  106. telnet.disconnect();
  107. }catch(Exceptione){
  108. e.printStackTrace();
  109. }
  110. }
  111. publicstaticvoidmain(String[]args){
  112. try{
  113. NetTelnettelnet=newNetTelnet();
  114. //通过aix的命令“查找主机名称”获取数据
  115. //命令是"hostname"
  116. //不熟悉命令的参考<<AIX网络管理手册>>
  117. Stringresult=telnet.sendCommand("hostname");
  118. System.out.println(result);
  119. //最后一定要关闭
  120. telnet.disconnect();
  121. }catch(Exceptione){
  122. e.printStackTrace();
  123. }
  124. }
  125. }

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值