WindowShell for Telnet
来源:互联网 发布:手机淘宝卖家中心在哪? 编辑:程序博客网 时间:2024/06/06 15:45
package com.wz.test;import java.io.IOException;import java.io.InputStream;import java.io.PrintStream;import org.apache.commons.net.telnet.TelnetClient;public class WindowShell { private TelnetClient telnet; private InputStream in; // 输入流,接收返回信息 private PrintStream out; // 向服务器写入 命令 private char prompt = '>'; //结束标识字符 private String pwdString; public WindowShell(String termtype,String ip, int port, String user, String password, int timeout) throws Exception{ telnet = new TelnetClient(termtype); telnet.setConnectTimeout(timeout); telnet.connect(ip, port); in = telnet.getInputStream(); out = new PrintStream(telnet.getOutputStream()); this.pwdString = "password"; login(user, password); } /** * 登录到目标主机 * @param ip * @param port * @param username * @param password */ public void login(String user, String password){ readUntil("login:"); write(user); readUntil(pwdString+":"); write(password); readUntil(prompt + ""); } /** * 读取分析结果 * * @param pattern 匹配到该字符串时返回结果 * @return */ public String readUntil(String pattern) { StringBuffer sb = new StringBuffer(); char lastChar = pattern.charAt(pattern.length() - 1); try { char ch = (char) in.read(); while (ch != -1) {sb.append(ch);if (ch == lastChar && sb.toString().endsWith(pattern)) {return sb.toString();}ch = (char) in.read();} } catch (Exception e) { e.printStackTrace(); } return sb.toString(); } /** * 写操作 * @Title write * @author Administrator * @param value * @return void */ public void write(String value) { try { out.println(value); out.flush(); } catch (Exception e) { e.printStackTrace(); } } /** * 发送命令,返回执行结果 * * @param command * @return */ public String sendCommand(String command) { try { write(command); return readUntil(prompt + ""); } catch (Exception e) { e.printStackTrace(); } return null; } /** * 关闭连接 */ public void disConnect(){ try { if(telnet != null) { telnet.disconnect(); } } catch (IOException e) { e.printStackTrace(); } } public static void main(String[] args) {System.out.println("启动Telnet...");String ip = "192.168.1.118";int port = 23;String user = "Administrator";String password = "wz";int timeout = 5000; try { WindowShell telnet = new WindowShell("VT220",ip,port,user,password,timeout); String rs = telnet.sendCommand("ipconfig"); System.out.println(new String(rs.getBytes("ISO-8859-1"),"GBK")); telnet.disConnect(); } catch (Exception e) { e.printStackTrace(); } } }
commons-net
0 0
- WindowShell for Telnet
- Shell for Telnet
- 基于WindowShell的右键自定义菜单
- Configuration file for Console Telnet 2.0
- telnet
- Telnet
- telnet
- Telnet
- telnet
- telnet
- telnet
- Telnet
- telnet
- telnet
- telnet
- telnet
- telnet
- telnet
- @RequestBody 和@ResponseBody 注解详解
- GreenDAO简介
- spring学习总结(三)
- hdoj 5137 How Many Maos Does the Guanxi Worth (最短路--Floyd)
- struts.xml(三)<result>标签详解,跳转
- WindowShell for Telnet
- Android Studio搭建OpenCV环境
- 合并排序算法
- 区域卫生平台用户分析
- 课时43|封装-方法重载,包的实现和利用
- 动态内存
- Evtsys windows 转换syslog
- 反射效果,自己公司内部编码,在text上输入内容后,通过输入内容查询数据库,弹出下拉框
- AngularJS 常见面试问题