package place.in.javaeye;
import java.io.InputStream;
import java.io.PrintStream;
import org.apache.commons.net.telnet.TelnetClient;
public class Shell
{
private TelnetClient telnet = new TelnetClient();
private InputStream in;
private PrintStream out;
private char prompt = '$';// 普通用户结束
public Shell(String ip, int port, String user, String password)
{
try
{
telnet.connect()(ip, port);
in = telnet.getInputStream();
out = new PrintStream(telnet.getOutputStream());
// 根据root用户设置结束符
this.prompt = user.equals("root") ? '#' : '>';
login(user, password);
}
catch (Exception e)
{
e.printStackTrace();
}
}
/**
* 登录
*
* @param user
* @param password
*/
public void login(String user, String password)
{
// read()Until("login:");
read()Until("login:");
write(user);
read()Until("Password:");
write(password);
readUntil(prompt + "");
}
/**
* 读取分析结果
*
* @param pattern
* @return
*/
public String readUntil(String pattern)
{
try
{
char lastChar = pattern.charAt(pattern.length() - 1);
StringBuffer sb = new StringBuffer();
char ch = (char)in.read();
while (true)
{
sb.append(ch);
if (ch == lastChar)
{
if (sb.toString().endsWith(pattern))
{
return sb.toString();
}
}
ch = (char)in.read();
System.out.print(ch);
}
}
catch (Exception e)
{
e.printStackTrace();
}
return null;
}
/**
* 写操作
*
* @param value
*/
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
{
telnet.disconnect()();
}
catch (Exception e)
{
e.printStackTrace();
}
}
public static void main(String[] args) {
TelnetClient telnet = new TelnetClient();
try {
Shell she =new Shell("10.**.***.***", 23, "***", "***");
System.out.println(she);
System.out.println(she.sendCommand("ls"));
she.disconnect();
}catch (Exception e) {
// TODO: handle exception
}
}
}
分享到:
相关推荐
java-telnet连接远程服务器并执行shell命令 具体代码 java-telnet
在IT领域,远程访问和管理服务器是常见的需求,而Telnet协议提供了一种基于文本的网络通信方式,允许用户从远程客户端连接到服务器并执行命令。Java作为一种广泛应用的编程语言,提供了丰富的库来支持这种通信。以下...
java源代码,通过telnet方式连接服务器,可以设置是否记录日志等信息。经过稍微改动可以实现类似crt软件的功能。
Java语言实现的Telnet客户端程序是一种能够连接到远程服务器并执行命令或进行交互的工具。在本资源中,开发者提供了一个具有图形用户界面(GUI)的实现,使得用户可以通过直观的界面来操作 Telnet 客户端,而不再...
在Java中实现一个Telnet客户端可以帮助开发者远程控制或测试其他支持Telnet的服务,例如网络设备配置、游戏服务器管理等。本文将详细讲解如何利用Java开发一个Telnet客户端,并提供相关源码分析。 首先,我们要了解...
Telnet协议是一种网络协议,允许用户通过网络连接到远程主机并执行命令,类似于SSH(Secure Shell)但不提供加密和安全性的保障。Apache Commons Net库提供了对Telnet协议的支持,使得开发者可以用Java方便地创建...
Java 实现模拟 SSH 和 Telnet 登陆,以及发送与接收命令是网络编程中常见的需求,主要应用于自动化测试、远程系统管理或数据交换等场景。在本文中,我们将深入探讨如何利用 Java 实现这一功能。 首先,SSH(Secure ...
本脚本使用到了管道和后台运行 telnet 的技术,可以在远程主机上执行各种命令,并将输出记录到文件中。 知识点一:Telnet 命令 Telnet 是一种远程登录协议,允许用户从远程主机上登录到另一个主机上。Telnet 命令...
在Java中实现Telnet协议,可以通过使用Apache Commons Net库来简化开发过程。Apache Commons Net是一个开源的Java类库,提供了多种网络协议的实现,包括Telnet、FTP、NNTP等。 #### 四、代码解析 下面是对给定代码...
在IT行业中,Telnet是一种基于TCP/IP协议的远程登录协议,允许用户通过网络连接到另一台计算机,并在该计算机上进行交互式会话。在Java编程语言中,我们可以利用Java Telnet库来实现对Telnet协议的支持。这个“简易...
2. **批处理**(BAT):批处理是Windows操作系统中的一个特性,它允许用户编写包含一系列命令的文本文件(通常扩展名为.bat或.cmd),然后一次性执行这些命令,极大地提高了工作效率。 3. **ping**:Ping是一个网络...
c# telnet远程服务器 发送指令。可以远程linux、Windows发送 dos命令
在Java中,`java.net.Socket`类提供了TCP/IP套接字功能,可以用于建立客户端到服务器的连接。以下是一个简单的Java Telnet客户端的构建框架: ```java import java.io.*; import java.net.*; public class ...
telnet命令是Internet远程登录服务的标准协议和主要方式,它允许用户通过TCP连接到远程主机,并在远程主机上执行命令。这个命令对于网络管理员、程序员以及进行远程系统调试的人来说非常有用。在Windows操作系统中,...
例如,可以通过telnet或SSH协议远程登录到另一台机器,并在其CMD环境中运行命令。不过,这些方法的安全性较低,现在更常见的是使用Powershell Remoting或第三方工具如PsExec,它们提供更安全的远程命令执行环境。 ...
Telnet是一种协议,允许用户通过网络在远程主机上执行命令。在Java中,我们可以使用`java.net.Socket`类来建立TCP连接,然后通过输入/输出流来发送和接收数据。以下是一个简单的Telnet连接示例: ```java import...
Java Telnet服务器是一种基于Java语言实现的网络通信服务,它允许远程用户通过telnet协议连接到本地主机,进行命令行交互或运行特定的应用程序。在本文中,我们将深入探讨Java TelnetD库(可嵌入式telnet守护进程)...
通过命令的形式,实现类似java调用cmd命令一样获取到对应的数据并返回值
Telnet 是一个早期的远程登录协议,允许用户通过网络登录到另一台计算机并执行命令。由于其通信内容未加密,因此安全性较低,现在主要用于测试和调试。在Java中,可以使用内置的`java.net.Socket`类来实现Telnet连接...
如果您已经安装了telnet客户端并启用了telnet服务,但telnet命令仍然不可用,那么可能是因为telnet命令没有被添加到系统路径中。具体步骤如下: * 打开控制面板,然后单击“系统和安全”。 * 单击“系统”。 * 在...