import java.io.InputStream;
import java.io.PrintStream;
import java.text.DecimalFormat;
import java.util.ArrayList;
import java.util.HashMap;
import java.util.List;
import org.apache.commons.net.telnet.TelnetClient;
public class TelnetUtil {
private TelnetClient telnet = new TelnetClient();
private InputStream in;
private PrintStream out;
private static final String DEFAULT_AIX_PROMPT = "#";
/**
* telnet 端口
*/
private String port;
/**
* 用户名
*/
private String user;
/**
* 密码
*/
private String password;
/**
* IP 地址
*/
private String ip;
/**
* 缺省端口
*/
private static final int DEFAULT_TELNET_PORT = 23;
public TelnetUtil(String ip, String user, String password) {
this.ip = ip;
this.port = String.valueOf(TelnetUtil.DEFAULT_TELNET_PORT);
this.user = user;
this.password = password;
}
public TelnetUtil(String ip, String port, String user, String password) {
this.ip = ip;
this.port = port;
this.user = user;
this.password = password;
}
/**
* @return boolean 连接成功返回true,否则返回false
*/
private boolean connect() {
boolean isConnect = true;
try {
telnet.connect(ip, Integer.parseInt(port));
in = telnet.getInputStream();
out = new PrintStream(telnet.getOutputStream());
/** Log the user on* */
readUntil("login: ");
write(user);
readUntil("Password: ");
write(password);
/** Advance to a prompt */
readUntil(DEFAULT_AIX_PROMPT);
} catch (Exception e) {
isConnect = false;
e.printStackTrace();
return isConnect;
}
return isConnect;
}
public void su(String user, String password) {
try {
write("su" + " - " + user);
readUntil("Password:");
write(password);
readUntil(DEFAULT_AIX_PROMPT);
} catch (Exception e) {
e.printStackTrace();
}
}
public String readUntil(String pattern) {
try {
char lastChar = pattern.charAt(pattern.length() - 1);
StringBuffer sb = new StringBuffer();
char ch = (char) in.read();
while (true) {
System.out.print(ch);// ---需要注释掉
sb.append(ch);
if (ch == lastChar) {
if (sb.toString().endsWith(pattern)) {
return sb.toString();
}
}
ch = (char) in.read();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
public void write(String value) {
try {
out.println(value);
out.flush();
System.out.println(value);// ---需要注释掉
} catch (Exception e) {
e.printStackTrace();
}
}
public String sendCommand(String command) {
try {
write(command);
return readUntil(DEFAULT_AIX_PROMPT);
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
private void disconnect() {
try {
telnet.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
private String getNowDate() {
this.connect();
String nowDate = this.sendCommand("date|awk '{print $2,$3,$4}'");
String[] temp = nowDate.split("\r\n");
// 去除命令字符串
if (temp.length > 1) {
nowDate = temp[0];
} else {
nowDate = "";
}
this.disconnect();
return nowDate;
}
public static void main(String[] args) {
try {
TelnetUtil telnet = new TelnetUtil("ip", "username", "password");
// String ls = telnet.sendCommand("ls");
String nowDate = telnet.getNowDate();
telnet.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}
分享到:
相关推荐
TelnetClient包,TelnetClient类根据RFC 854为Telnet协议实现了简单网络虚拟终端(NVT)。它没有实现任何其他Telnet选项,因为它打算在Java程序中使用,以提供对Telnet可访问资源的自动访问。 可以通过首先使用Socket...
telnet client and ssh terminal emulator for Windows
telnet client程序,很好用的。
天邑TelnetClient-fix-full
Telnet远程登录linux系统,Telnet远程登录linux系统,Telnet远程登录linux系统
UNIX的telnet工具及课件下载方法UNIX的telnet工具及课件下载方法
安卓项目开发中使用到了telnet于是乎写了个精致的小Demo 完整源码可运行,简单易懂无bug
1、通过WINDOWS操作系统中的远程登录程序telnet.exe 登录UNIX。 2、熟悉UNIX/LINUX的常用基本命令如ls、who、w、pwd、ps、pstree、top等。 3、通过WINDOWS操作系统中的FTP程序,练习WINDOWS和UNIX之间的文件交换。 4...
Package telnet provides simple interface for interacting with Telnet connection.
主要介绍了使用java实现telnet-client工具,需要的朋友可以参考下
Telnet工具,远程访问开发板使用
eNSP模拟---Telnet远程访问.rar
VC的telnet client代码。它把控制字符做出响应,把纯数据输出到console界面。如果需要集成到自己的代码中,只需要把输出的方向改变一下。虽然是找来的代码,但是寻找还是花了些功夫,所以也收点费用。
telnet client 2
CRT是一款SSH客户端软件,用于在Windows系统上远程访问Linux/Unix服务器。它可以提供可靠的加密连接和管理多个会话、窗口和协议的功能,支持SSH、Telnet、Rlogin、Serial等多种连接协议。 CRT具有用户友好的界面和...
在VBS中,使用Telnet连接远程端口,测试远程端口是否开放。不依赖Active库。
SSH Secure Shell Client是一个用来替代TELNET、FTP以及R命令的数据加密工具,进行ssh 下载主要是想解决口令在网上明文传输的问题。为了系统安全和用户自身的权益,推广SSH是必要的。 SSH是英文Secure Shell的简写...
计算机网络课设,telnet远程登录,实现了部分功能,程序包括客户端和服务器端,可以运行通过,注意输入自己的机器的ip,使用的是vs2008开发环境
telnet client程序