亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb

首頁 > 編程 > Java > 正文

使用java實現telnet-client工具分享

2019-11-26 15:34:53
字體:
來源:轉載
供稿:網友

telnet-client太費盡了,比ssh-client費盡的多,搞了一天,湊合能用,還得改。
org.apache.commons.net.telnet.TelnetClien --使用了apache的commons-net包,commons-net-3.0.1-bin.zip。

復制代碼 代碼如下:

package org.sl.util;
import org.apache.commons.net.telnet.TelnetClient;
import java.io.*;
import java.nio.ByteBuffer;
public class TelnetUtil {
    String charset = null;
    byte[] buff = new byte[2048];
    TelnetClient telnetClient = new TelnetClient();
    BufferedReader telnetReader = null;
    BufferedWriter telnetWirter = null;
    InputStream telnetIn = null;
    OutputStream telnetOut = null;

    public TelnetUtil() {
        telnetClient = new TelnetClient();
    }

    /**
     * 連接至服務器
     * @param ip
     * @param port
     * @throws UnsupportedEncodingException
     * @throws IOException
     */
    public void connect(String ip, int port) throws UnsupportedEncodingException,IOException {
        telnetClient.connect(ip,port);
        setIOStream();
    }

    /**
     * 連接至服務器
      * @param ip
     * @throws UnsupportedEncodingException
     * @throws IOException
     */
    public void connect(String ip) throws UnsupportedEncodingException,IOException {
        telnetClient.connect(ip);
        setIOStream();
    }

    void setIOStream() throws UnsupportedEncodingException {
        telnetIn = telnetClient.getInputStream();
        telnetOut = telnetClient.getOutputStream();
        if(null==charset){
            telnetReader = new BufferedReader(new InputStreamReader(telnetIn));
            telnetWirter = new BufferedWriter(new OutputStreamWriter(telnetOut));
        }else{
            telnetReader = new BufferedReader(new InputStreamReader(telnetIn, charset));
            telnetWirter = new BufferedWriter(new OutputStreamWriter(telnetOut, charset));
        }
    }

    /**
     * 登錄
     * @param user
     * @param passwd
     * @return 是否登錄成功.
     * @throws IOException
     */
    public boolean login(String user,String passwd) throws IOException {
        String read = readString();
        for(int i=0; ; i++){
            if(-1==read.indexOf("login")){
                read = readString();
            }else{
                break;
            }
        }
        writeText(user);

        read = readString();
        for(int i=0; ; i++){
            if(-1==read.indexOf("Password")){
                read = readString();
            }else{
                break;
            }
        }
        writeText(passwd);

        for(;;){
            read = readString();
            //System.out.println("last:"+read);
            if(-1!=read.indexOf("Last")){
                return true;
            }else if(-1!=read.indexOf("incorrect")){
                return false;
            }
        }
    }

    /**
     * 這是一個測試方法,隨便寫。
     * @throws IOException
     */
    public void show() throws IOException {
//        System.out.println(readString());
//        System.out.println(readString());
//        ByteBuffer tmp = ByteBuffer.allocate(1024);
//        byte[] buff = new byte[1024];
//        while(telnetIn.available()>0){
//            int readLen = readBytes(buff,0,1024);
//            tmp.put(buff,0,readLen);
//        }

//        System.out.println(new String(tmp.array()));
        System.out.println("1 "+readString());
        System.out.println("2 "+readString());
        System.out.println("3 "+readString());
        writeText("root");
        System.out.println("4 " + readString());
        writeText("123456");
        System.out.println("5 "+readString());
//        System.out.println("6 "+readString());
//        System.out.println("7 "+readString());

    }

    public int readBytes(byte[] buff, int offset, int len) throws IOException {
        return telnetIn.read(buff,offset,len);
    }

    /**
     * 讀取字符串<br/>
     * 相當于readByte()轉為字符串
     * @return
     * @throws IOException
     */
    public String readString() throws IOException {
        int readLen = readBytes(this.buff, 0, this.buff.length);
        if(0<readLen)
            return new String(buff,0,readLen).trim();
        else
            return "";
    }

    /**
     * 讀取一行<br/>
     * 如果服務器與客戶端不是同一種操作系統,可能導致此方法計行失敗。
     * @return
     * @throws IOException
     */
    public String readLine() throws IOException {
        String read = telnetReader.readLine();
        return null==read?"":read.trim();
    }

    public void writeBytes(byte[] buff, int offset, int len) throws IOException {
        telnetOut.write(buff,offset,len);
    }

    /**
     * 向服務器寫字符串
     * @param text
     * @throws IOException
     */
    public void writeText(String text) throws IOException {
        telnetWirter.write(text);
        telnetWirter.write('/r');
        telnetWirter.write('/n');
        telnetWirter.flush();
    }

    /**
     * 執行命令,并返回結果<br/>
     * 相當于: <br>
     * writeText();  <br/>
     * return readString();
     * @param cmd
     * @return
     * @throws IOException
     */
    public String exec(String cmd) throws IOException {
        writeText(cmd);
        return readString();
    }

    String login1(String user,String passwd) throws IOException {
        String read = null;
        readString();
        readString();
        read = readString();

        if(-1!=read.indexOf("login")){
            writeText(user);
        }

        read = readString();
        if(-1!=read.indexOf("Password")){
            writeText(passwd);
        }

        read  = readString();
        read += readString();
        return read;

//        StringBuffer sb = new StringBuffer();
//        while(null!= (read = readString())){
//            sb.append(read);
//        }
//
//        return sb.toString();
    }

    /**
     * 關閉
     */
    public void close(){
        try{
            writeText("exit");
            writeText("exit");
            writeText("exit");
        }catch(Exception ex){
        }

        try {
            if(null!=telnetIn) telnetIn.close();
        } catch (Exception e) {
        }

        try {
            if(null!=telnetOut) telnetOut.close();
        } catch (Exception e) {
        }

        try {
            if(null!=telnetClient)telnetClient.disconnect();
        } catch (Exception e) {
        }
    }

    /**
     * 設置telnet通信時的字符集<br/>
     * 注:此字符集與服務器端字符集沒有必然關系<br/>
     * 此方法需在connect()前調用
     * @param charset
     */
    public void setCharset(String charset ){
        this.charset = charset;
    }

    /**
     * 重新設置buff大小,默認為2048字節.
     * @param size
     */
    public void setBufferSize(int size){
        this.buff = new byte[size];
    }
}

測試類

復制代碼 代碼如下:

static void t4(){
        TelnetUtil tu = new TelnetUtil();
        try {
            tu.connect("192.168.2.154");
            System.out.println(tu.login("root", "123456"));
            //tu.show();
            //System.out.println(tu.readString());
            //System.out.println(tu.exec("pwd"));

            System.out.println(tu.exec("echo /"123456789/">1.txt"));
            System.out.println(tu.exec("cat 1.txt"));
        } catch (IOException e) {
            e.printStackTrace();
        }

        tu.close();
    }

    static void t1(){
        TelnetUtil tu = new TelnetUtil();
        try {
            tu.connect("192.168.2.154");
            System.out.println(tu.login("sl1", "coffee8215"));
            //tu.show();
            //System.out.println(tu.readString());
            System.out.println(tu.exec("pwd"));

        } catch (IOException e) {
            e.printStackTrace();
        }

        tu.close();
    }

發表評論 共有條評論
用戶名: 密碼:
驗證碼: 匿名發表
亚洲香蕉成人av网站在线观看_欧美精品成人91久久久久久久_久久久久久久久久久亚洲_热久久视久久精品18亚洲精品_国产精自产拍久久久久久_亚洲色图国产精品_91精品国产网站_中文字幕欧美日韩精品_国产精品久久久久久亚洲调教_国产精品久久一区_性夜试看影院91社区_97在线观看视频国产_68精品久久久久久欧美_欧美精品在线观看_国产精品一区二区久久精品_欧美老女人bb
色综合久久中文字幕综合网小说| 欧美黄色片在线观看| 久久久久这里只有精品| 欧美美最猛性xxxxxx| 中文字幕精品—区二区| 欧美成人免费全部观看天天性色| 久久精品中文字幕免费mv| 欧美国产日韩二区| 一区二区三区视频在线| 亚洲欧美日韩精品久久亚洲区| 日本成人在线视频网址| 亚洲最大福利视频| 狠狠久久亚洲欧美专区| 亚洲国产欧美一区二区丝袜黑人| **欧美日韩vr在线| 日本高清久久天堂| 亚洲区bt下载| 国模精品视频一区二区| 久久精品国产69国产精品亚洲| 久久亚洲私人国产精品va| 日韩av快播网址| 欧美精品性视频| 欧美大片第1页| 欧美性极品少妇精品网站| 欧美日韩激情视频8区| 国产精品久久久久久久久免费看| 日韩美女福利视频| 欧美性色xo影院| 亚洲九九九在线观看| 一本色道久久综合亚洲精品小说| 欧美高清电影在线看| 国产精品国产三级国产aⅴ浪潮| 欧美国产精品日韩| 日韩福利伦理影院免费| 亚洲第一福利视频| 97婷婷涩涩精品一区| 国产精品扒开腿爽爽爽视频| 中文字幕亚洲图片| 国模私拍视频一区| 国产视频久久网| 91最新在线免费观看| 国产精品视频在线观看| 久久成人亚洲精品| 欧美一级bbbbb性bbbb喷潮片| 91精品免费视频| 亚洲黄色成人网| 国产精品极品美女粉嫩高清在线| 日韩av在线网页| 国产精品91视频| 国产成人一区二区三区| 国产精品国产自产拍高清av水多| 日韩精品免费在线视频观看| 国产拍精品一二三| 日韩在线播放视频| 国产亚洲精品久久久久久牛牛| 国产综合香蕉五月婷在线| 亚洲电影免费观看高清完整版在线观看| 国产日韩欧美夫妻视频在线观看| 日本sm极度另类视频| 91亚洲一区精品| 久久九九国产精品怡红院| 国产偷亚洲偷欧美偷精品| 97人洗澡人人免费公开视频碰碰碰| 日韩av在线网址| 国产精品成人va在线观看| 中文字幕无线精品亚洲乱码一区| 亚洲自拍偷拍区| 国产日韩欧美日韩大片| 亚洲一二三在线| 欧美成人精品在线视频| 美女福利精品视频| 国产精品白嫩美女在线观看| 亚洲天堂免费视频| 日本精品视频网站| 欧美专区在线观看| 91美女片黄在线观看游戏| 日本亚洲精品在线观看| 91精品视频免费看| 成人网在线视频| 青草青草久热精品视频在线网站| 清纯唯美日韩制服另类| 欧美日韩国产精品专区| 日本欧美黄网站| 日韩精品中文字幕在线播放| 欧美日韩国产在线播放| 97人人爽人人喊人人模波多| 日韩国产高清污视频在线观看| 国产精品久久久久久久久久| 欧美日韩另类视频| 日韩一区二区久久久| 欧美性猛交xxxx黑人猛交| 91高清视频免费观看| 国产精品黄色影片导航在线观看| 国内精品视频一区| 久久综合五月天| 国产午夜精品理论片a级探花| 亚洲在线第一页| 欧美激情xxxxx| 成人免费激情视频| 韩国一区二区电影| 午夜精品一区二区三区在线| 伊人精品在线观看| 亚洲精品国产品国语在线| 国产欧美一区二区三区四区| 欧美亚洲国产日韩2020| 欧美日韩色婷婷| 在线视频欧美日韩精品| 日本高清+成人网在线观看| 最近日韩中文字幕中文| 亚洲欧美日韩天堂| 国产精品美女www爽爽爽视频| 国产精品一区二区三区久久久| 成人福利在线视频| 欧美精品videos性欧美| 亚洲人成五月天| 国产精品美女网站| 国产日韩欧美日韩| 色爱精品视频一区| 国产精品午夜国产小视频| 热久久99这里有精品| 成人激情视频在线播放| 毛片精品免费在线观看| 国产精品久久久久久久av电影| 97久久超碰福利国产精品…| 日韩视频免费中文字幕| 成人日韩在线电影| 亚洲欧美在线一区| 亚洲的天堂在线中文字幕| 欧美精品少妇videofree| 精品国产一区二区三区在线观看| 国产99久久精品一区二区 夜夜躁日日躁| 91精品国产综合久久香蕉最新版| 136fldh精品导航福利| 亚洲精品欧美一区二区三区| 欧美精品在线免费| 黑人与娇小精品av专区| 欧美日韩加勒比精品一区| 日韩精品一区二区视频| 在线日韩中文字幕| 国产精品久久久精品| 日本久久精品视频| 国产欧美在线视频| 中文字幕亚洲欧美日韩2019| 欧美又大又硬又粗bbbbb| 操人视频在线观看欧美| 国产三级精品网站| 成人激情电影一区二区| 久久精品国产91精品亚洲| 欧美又大粗又爽又黄大片视频| 精品欧美aⅴ在线网站| 久久精品99久久久久久久久| 欧美激情高清视频| 日韩av手机在线观看| 成人国产精品免费视频| 日韩高清免费在线| 亚洲xxxx妇黄裸体| 午夜精品久久久久久久男人的天堂| 奇门遁甲1982国语版免费观看高清| 2019日本中文字幕| 成人黄色av网站| 欧洲成人在线观看| 韩国19禁主播vip福利视频| 国产午夜精品免费一区二区三区| 91精品视频一区|