176142998

            BlogJava :: 首頁 :: 聯系 :: 聚合  :: 管理
            116 Posts :: 0 Stories :: 45 Comments :: 0 Trackbacks

          commons-net-2.0.jar
          log4j-1.2.15.jar


          package com;

          import java.io.InputStream;
          import java.io.PrintStream;

          import org.apache.commons.net.telnet.TelnetClient;
          import org.apache.log4j.Logger;

          public class TelnetHandler {
           private static final Logger logger = Logger.getLogger(TelnetHandler.class);
           private TelnetClient telnet = new TelnetClient("VT220");
           private InputStream in;
           private PrintStream out;
           private String prompt=" ";
           String s;

           public void TelnetCmd(String server, String user, String password) {
            try {
             // Connect to the specified server
             telnet.connect(server, 23);
             logger.info("Login............................");
             // Get input and output stream references
             in = telnet.getInputStream();
             out = new PrintStream(telnet.getOutputStream());
             // Login
             readUntil("login: ");
             write(user);
             readUntil("password: ");
             write(password);
             // Advance to a prompt
             readUntil(prompt);
            } catch (Exception e) {
             e.printStackTrace();
             logger.info("logon failed", e);
            }
           }

           public String readUntil(String pattern) {
            try {
             char lastChar = pattern.charAt(pattern.length() - 1);
             StringBuffer sb = new StringBuffer();
             // boolean found = false;
             char ch = (char) in.read();

             while (true) {
              System.setProperty("GBK", "iso8859-1");
              System.out.print(ch);
              sb.append(ch);
              if (ch == lastChar) {
               if (sb.toString().endsWith(pattern)) {
                // System.out.print( sb.toString());
                return sb.toString();
               }
              }
              ch = (char) in.read();
             }
            } catch (Exception e) {
             e.printStackTrace();
            }
            return null;
           }

           public void write(String value) {
            try {
             out.println(value);
             out.flush();
          //   System.out.println(value);
            } catch (Exception e) {
             e.printStackTrace();
            }
           }

           public String sendCmd(String command) {
            try {
             write(command);
             return readUntil(s + prompt);
            } catch (Exception e) {
             e.printStackTrace();
            }
            return null;
           }

           public void disconnect() {
            try {
             telnet.disconnect();
            } catch (Exception e) {
             e.printStackTrace();
            }
           }

           public static void main(String[] args) {
            try {
             logger.info("發送命令開始");
             TelnetHandler telnet1 = new TelnetHandler();
             telnet1.TelnetCmd("127.0.0.1", "administrator", "123456");
             // Exec Cmd
          //   telnet1.sendCmd("dir");
             telnet1.sendCmd("cd c:\\test");
             telnet1.disconnect();
          //   telnet1.sendCmd("xcopy c:\\httpdownload.txt c:\\test");
             
             logger.info("發送命令結束");
             
             
            } catch (Exception e) {
             e.printStackTrace();
            }
           }
          }

          posted on 2011-04-12 17:37 飛飛 閱讀(840) 評論(0)  編輯  收藏

          只有注冊用戶登錄后才能發表評論。


          網站導航:
           
          主站蜘蛛池模板: 郴州市| 准格尔旗| 汉阴县| 江西省| 慈溪市| 堆龙德庆县| 益阳市| 墨玉县| 乌兰察布市| 贵阳市| 通渭县| 西吉县| 潞城市| 晋城| 岫岩| 抚松县| 大兴区| 天镇县| 大城县| 金湖县| 青河县| 喀什市| 渝北区| 随州市| 普定县| 靖安县| 福安市| 延川县| 诸暨市| 崇州市| 永春县| 遂宁市| 土默特左旗| 黎城县| 韶关市| 陆河县| 拜城县| 盐池县| 广宗县| 斗六市| 宁晋县|