importjava.io.IOException;importjava.io.InputStream;importjava.io.InputStreamReader;importjava.io.OutputStream;importjava.net.SocketException;importorg.apache.commons.net.telnet.TelnetClient;public classClient {public static voidmain(String[] args){try{
TelnetClient tc= newTelnetClient();
tc.connect("192.168.100.8", 23);
InputStream in=tc.getInputStream();
OutputStream os=tc.getOutputStream();
System.out.print(readUntil(":", in));
writeUtil("root", os);
System.out.print(readUntil(":", in));
writeUtil("freewificom", os);
System.out.print(readUntil("[email protected]:~#", in));
writeUtil("ls -l / ", os);
System.out.print(readUntil("[email protected]:~#", in));
writeUtil("ip addr ", os);
System.out.print(readUntil("[email protected]:~#", in));
writeUtil("ip route ", os);
System.out.print(readUntil("[email protected]:~#", in));
}catch(SocketException e) {
e.printStackTrace();
}catch(IOException e) {
e.printStackTrace();
}
}/*** 写入命令方法
*@paramcmd
*@paramos*/
public static voidwriteUtil(String cmd, OutputStream os){try{
cmd= cmd + "\n";
os.write(cmd.getBytes());
os.flush();
}catch(IOException e) {
e.printStackTrace();
}
}/*** 读到指定位置,不在向下读
*@paramendFlag
*@paramin
*@return
*/
public staticString readUntil(String endFlag, InputStream in) {
InputStreamReader isr= newInputStreamReader(in);char[] charBytes = new char[1024];int n = 0;boolean flag = false;
String str= "";try{while((n = isr.read(charBytes)) != -1){for(int i=0; i< n; i++){char c = (char)charBytes[i];
str+=c;//当拼接的字符串以指定的字符串结尾时,不在继续读
if(str.endsWith(endFlag)){
flag= true;break;
}
}if(flag){break;
}
}
}catch(IOException e) {
e.printStackTrace();
}returnstr;
}
}