Telnet-Client terlalu kelelahan, lebih dari sekadar klien SSH.
org.apache.commons.net.telnet.telnetClien-menggunakan paket commons-net dari Apache, commons-net-3.0.1-bin.zip.
Salinan kode adalah sebagai berikut:
paket org.sl.util;
impor org.apache.commons.net.telnet.telnetClient;
impor java.io.*;
impor java.nio.bytebuffer;
Telnetutil kelas publik {
String charset = null;
byte [] buff = byte baru [2048];
Telnetclient telnetclient = telnetclient baru ();
BufferedReader telnetreader = null;
BufferedWriter telnetwirter = null;
Inputstream telnetin = null;
OutputStream telnetout = null;
Telnetutil publik () {
telnetclient = telnetclient baru ();
}
/**
* Sambungkan ke server
* @param IP
* port @param
* @Throws UnsportedencodingException
* @Throws IoException
*/
public void connect (string ip, int port) melempar UnsupportedEncodingException, IoException {
telnetclient.connect (ip, port);
setioStream ();
}
/**
* Sambungkan ke server
* @param IP
* @Throws UnsportedencodingException
* @Throws IoException
*/
public void connect (string ip) melempar UnsupportedEncodingException, IoException {
telnetclient.connect (IP);
setioStream ();
}
void setioStream () melempar UnsupportedencodingException {
telnetin = telnetclient.getInputStream ();
telnetout = telnetclient.getoutputStream ();
if (null == charset) {
telnetreader = BufferedReader baru (inputStreamReader baru (telnetin));
telnetwirter = baru bufferedwriter (outputStreamWriter baru (telnetout));
}kalau tidak{
telnetreader = BufferedReader baru (inputStreamReader baru (telnetin, charset));
telnetwirter = baru bufferedwriter (outputStreamWriter baru (telnetout, charset));
}
}
/**
* Masuk
* User @param
* @param passwd
* @ekrut apakah login berhasil.
* @Throws IoException
*/
Login Boolean Publik (Pengguna String, String PassWD) Melempar IoException {
String baca = readString ();
untuk (int i = 0;; i ++) {
if (-1 == baca.indexof ("login")) {
baca = readString ();
}kalau tidak{
merusak;
}
}
writeText (pengguna);
baca = readString ();
untuk (int i = 0;; i ++) {
if (-1 == baca.indexof ("password")) {
baca = readString ();
}kalau tidak{
merusak;
}
}
writeText (passwd);
untuk(;;){
baca = readString ();
//System.out.println("Last :"+Read);
if (-1! = read.indexof ("last")) {
Kembali Benar;
} else if (-1! = read.indexof ("salah")) {
mengembalikan false;
}
}
}
/**
* Ini adalah metode tes, tulis saja dengan santai.
* @Throws IoException
*/
public void show () melempar ioException {
// System.out.println (readString ());
// System.out.println (readString ());
// bytebuffer tmp = byteBuffer.allocate (1024);
// byte [] buff = byte baru [1024];
// while (telnetin.available ()> 0) {
// int readlen = readbytes (buff, 0,1024);
// tmp.put (buff, 0, readlen);
//}
// System.out.println (string baru (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 ());
}
publik int readbytes (byte [] buff, int offset, int len) melempar ioException {
return telnetin.read (buff, offset, len);
}
/**
* Baca String <br/>
* setara dengan mengubah readbyte () menjadi string
* @kembali
* @Throws IoException
*/
Public String ReadString () melempar ioException {
int readlen = readbytes (this.buff, 0, this.buff.length);
if (0 <readlen)
mengembalikan string baru (buff, 0, readlen) .trim ();
kalau tidak
kembali "";
}
/**
* Baca baris <br/>
* Jika server dan klien bukan sistem operasi yang sama, metode ini mungkin gagal menghitung jalur.
* @kembali
* @Throws IoException
*/
public string readline () melempar ioException {
String baca = telnetreader.readline ();
return null == baca? "": read.trim ();
}
public void writeBytes (byte [] buff, int offset, int len) melempar ioException {
telnetout.write (buff, offset, len);
}
/**
* Tulis string ke server
* @param Text
* @Throws IoException
*/
public void writeText (string text) melempar ioException {
telnetwirter.write (teks);
telnetwirter.write ('/r');
telnetwirter.write ('/n');
telnetwirter.flush ();
}
/**
* Jalankan perintah dan kembalikan hasilnya <br/>
* Setara dengan: <br>
* writeText ();
* mengembalikan readString ();
* @param cmd
* @kembali
* @Throws IoException
*/
public String exec (string cmd) melempar ioException {
WriteText (CMD);
return readString ();
}
String Login1 (Pengguna String, String PassWD) melempar IoException {
String baca = null;
readString ();
readString ();
baca = readString ();
if (-1! = read.indexof ("login")) {
writeText (pengguna);
}
baca = readString ();
if (-1! = read.indexof ("password")) {
writeText (passwd);
}
baca = readString ();
baca += readString ();
kembali baca;
// StringBuffer SB = StringBuffer baru ();
// while (null! = (baca = readString ()) {
// SB.Append (baca);
//}
//
// return sb.tostring ();
}
/**
* penutup
*/
public void close () {
mencoba{
writeText ("EXIT");
writeText ("EXIT");
writeText ("EXIT");
} catch (Exception ex) {
}
mencoba {
if (null! = telnetin) telnetin.close ();
} catch (Exception e) {
}
mencoba {
if (null! = telnetout) telnetout.close ();
} catch (Exception e) {
}
mencoba {
if (null! = telnetclient) telnetclient.disconnect ();
} catch (Exception e) {
}
}
/**
* Tetapkan set karakter selama komunikasi telnet <br/>
* Catatan: Kumpulan karakter ini tidak memiliki hubungan yang diperlukan dengan set karakter sisi server <br/>
* Metode ini perlu dipanggil sebelum terhubung ()
* @param charset
*/
public void setCharset (string charset) {
this.charset = charset;
}
/**
* Setel ulang ukuran buff, default ke 2048 byte.
* Ukuran @param
*/
public void setBuffersize (ukuran int) {
this.buff = byte baru [ukuran];
}
}
Kelas tes
Salinan kode adalah sebagai berikut:
static void t4 () {
Telnetutil tu = telnetutil baru ();
mencoba {
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 = telnetutil baru ();
mencoba {
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 ();
}