import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
import java.io.OutputStream;
import java.net.SocketException; import org.apache.commons.net.telnet.TelnetClient; public class Client { public static void main(String[] args){ try {
TelnetClient tc = new TelnetClient();
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("root@WiAC:~#", in)); writeUtil("ls -l / ", os);
System.out.print(readUntil("root@WiAC:~#", in)); writeUtil("ip addr ", os);
System.out.print(readUntil("root@WiAC:~#", in)); writeUtil("ip route ", os);
System.out.print(readUntil("root@WiAC:~#", in)); } catch (SocketException e) {
e.printStackTrace();
} catch (IOException e) {
e.printStackTrace();
} } /**
* 写入命令方法
* @param cmd
* @param os
*/
public static void writeUtil(String cmd, OutputStream os){
try {
cmd = cmd + "\n";
os.write(cmd.getBytes());
os.flush();
} catch (IOException e) {
e.printStackTrace();
} } /**
* 读到指定位置,不在向下读
* @param endFlag
* @param in
* @return
*/
public static String readUntil(String endFlag, InputStream in) { InputStreamReader isr = new InputStreamReader(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();
} return str;
}
}

最新文章

  1. 第1周 支路变量、元件、KCL和KVL
  2. 如何查看文件是dos格式还是unix格式的?
  3. KMP---Count the string
  4. EXT--当defaultType与items的子组件默认xtype冲突时items的子组件的xtype为panel
  5. fsl的feat软件分包使用笔记
  6. 利用TreeSet给纯数字字符串排序
  7. Codeforces 351B Jeff and Furik
  8. Ext布局篇
  9. javascript之BOM编程Screen(屏幕)对象
  10. TensorFlow图像处理API
  11. CSS层叠和继承
  12. 为什么Eureca Client要分成服务提供者和服务消费者呢?
  13. spring-session 2.0 实现细节
  14. windows 下用命令来操作定时任务
  15. Email接收验证码,以实现登录/注册/修改密码
  16. Android事件处理第一节(View对Touch事件的处理)
  17. SSH框架开发蛋糕房管理系统之质量属性
  18. 向SQL Server中导入Excel的数据
  19. keras系列︱图像多分类训练与利用bottleneck features进行微调(三)
  20. clapack在android上移植

热门文章

  1. idhttp文件的上传和下载
  2. linux虚拟机安装oracle全过程(一)
  3. AIOps对监控报警架构的挑战
  4. Heavy Light Decomposition
  5. 4.windows-oracle实战第四课 -表的查询
  6. maven中scope属性有哪些
  7. 吴裕雄--天生自然 pythonTensorFlow图形数据处理:数据集高层操作
  8. C#在listview控件中显示数据库数据
  9. 解决UITextView滚动后无法显示完整内容
  10. 使用tomcat方式实现websocket即时通讯服务端讲解