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();
}
}
}
分享到:
相关推荐
PuTTY以其轻量级、易用性和跨平台性而著名,是许多系统管理员和开发者首选的远程访问工具。 1. **PuTTY的特性与功能** - **安全性**:PuTTY通过SSH协议提供加密的网络通信,确保数据传输的安全性,防止被窃听或...
RLogin(Remote Login)是另一种远程访问协议,最初在Unix系统间使用。尽管RLogin并不提供SSH那样的加密保护,PuTTY仍然支持它,以满足那些需要与使用此协议的系统交互的用户。 PuTTY.exe是PuTTY的主要执行文件,...
SSH常用于安全地控制Linux或Unix系统,telnet虽然不安全但仍然在某些场景下使用,FTP用于文件传输,而RDP是Windows系统内置的远程桌面连接方式。 从标签“window”来看,这个程序可能特别关注与Windows操作系统的...
基于终端的远程访问 TELNET rlogin X-Windows 远程网络访问安全技术全文共27页,当前为第2页。 Telnet:连接异种客户端和服务器 23号端口 一个字符一个数据包 服务器验证用户 命令行 远程网络访问安全技术全文共27...
2. **多平台支持**:Tectia客户端不仅适用于Windows系统,还支持各种Unix/Linux操作系统,提供跨平台的远程访问解决方案。 3. **自动密钥管理**:Tectia客户端包含一个全面的密钥管理系统,可以自动管理用户和...
MobaXTerm v6.1是一款强大的远程终端工具,集成了多种功能,包括XServer和Client,为IT专业人士提供了便捷的Linux和Unix系统访问解决方案。该版本的发布,无疑为Windows用户提供了更加全面的跨平台操作体验。 首先...
这款软件支持多种操作系统,包括Windows、Linux和Unix平台,为IT管理员和开发人员提供了便捷的远程访问工具。 PuTTY的核心特性包括: 1. **安全性**:PuTTY基于SSH协议,提供加密的数据传输,确保用户与远程服务器...
Windows下的NFS服务(SFU)配置是指在Windows操作系统中安装和配置NFS(Network File System)服务,以便实现与Linux和UNIX系统的文件共享。SFU(Services for UNIX)是微软提供的一个功能强大的UNIX实用程序包,...
CRT,全称是“Cygwin Telnet Client”,是由Cygwin项目开发的一款远程终端模拟器,主要用于在Windows操作系统上连接并管理Linux或Unix服务器。它提供了强大的远程控制功能,让用户能够在Windows环境下像操作本地系统...
SSH Secure Shell Client是一款广泛使用的网络安全协议客户端,专为远程连接Linux、Unix以及Solaris操作系统而设计。它提供了安全的数据传输和交互,确保用户能够通过不安全的网络进行加密的会话,例如进行命令行...
1. **SecureCRT**:SecureCRT是一款流行的Windows平台上用于连接远程Linux或UNIX系统的终端仿真器,它支持SSH、Telnet、Rlogin等多种协议。它提供了强大的功能,如多窗口同时连接多个会话、自动登录、会话管理、脚本...
7. **UNIX网络程序**:在UNIX系统下,网络应用程序通常被称为守护进程(Daemons),选项C正确。 8. **Windows 2000组策略刷新**:要使Windows 2000的组策略立即生效,应使用`Gpedit.msc`命令,选项B正确。 9. **...
在IT行业中,远程工具是必不可少的,特别是在网络管理员、开发者以及需要远程访问服务器的用户群体中。本资源包集合了多种流行的远程连接工具,包括Putty、SecureCRT、SSH Secure Shell Client等,方便用户根据需求...
这样的客户端允许用户通过加密的连接管理远程Linux或Unix服务器,确保通信的安全性,防止数据被窃取或篡改。 标签"ssh window client"进一步明确了讨论的主题,即关于在Windows上使用的SSH客户端程序。 在压缩包子...
PuTTY,全称为PuTTY SSH和Telnet客户端...总的来说,PuTTY作为一款强大的远程访问工具,虽然不直接包含文件传输功能,但通过其配套工具或与其他软件结合,可以在保障安全性的前提下,方便地实现远程文件的管理和传输。
它允许用户通过加密连接访问远程Linux或Unix系统,确保数据传输的安全性。此客户端提供了丰富的功能,如终端仿真、文件传输、公共密钥认证等,使得远程管理更为便捷。 2. Putty:Putty 是一个免费且开源的SSH客户端...
3. **rlogin**:PuTTY还提供了对rlogin协议的支持,这是一种较老的远程登录方式,主要用于Unix系统之间。但因其缺乏安全特性,现已被SSH所取代。 4. **TCP隧道与端口转发**:PuTTY允许创建TCP隧道,可以将本地端口...
在Mac操作系统中,寻找一款类似于Windows下的CRT(Client for Remote Telnet/SSH)工具是非常常见的需求,因为这类软件能够提供安全的远程访问功能。本文将详细介绍MAC中的ZOC,一个强大的终端模拟器和SSH客户端,它...
总的来说,Puttyclient是一款功能强大且可靠的远程访问工具,尤其适合需要处理多语言环境和需要高效率文本编辑的IT专业人员。它的出现解决了SSH客户端乱码的问题,提升了远程操作的体验,是IT工作中的得力助手。
总的来说,SSH Secure File Transfer Client和Putty是强大且实用的工具,它们为开发者和系统管理员提供了安全、便捷的远程访问和文件传输手段。在Windows环境下,Putty的易用性和灵活性使其成为SSH连接的首选客户端...