`
z_jiankun
  • 浏览: 164221 次
  • 性别: Icon_minigender_1
  • 来自: 南京
社区版块
存档分类
最新评论

Java调用Telnet示例

    博客分类:
  • Java
 
阅读更多
转自:http://blog.csdn.net/jakey766/article/details/12782969


import java.io.IOException;
import java.io.InputStream;
import java.io.PrintStream;
import java.io.UnsupportedEncodingException;

import org.apache.commons.net.telnet.TelnetClient;

/**
* Telnet操作器,基于commons-net-2.2.jar
* @author JiangKunpeng
*
*/
public class TelnetOperator {

private String prompt = ">"; //结束标识字符串,Windows中是>,Linux中是#
private char promptChar = '>'; //结束标识字符
private TelnetClient telnet;
private InputStream in; // 输入流,接收返回信息
private PrintStream out; // 向服务器写入 命令

/**
* @param termtype 协议类型:VT100、VT52、VT220、VTNT、ANSI
* @param prompt 结果结束标识
*/
public TelnetOperator(String termtype,String prompt){
telnet = new TelnetClient(termtype);
setPrompt(prompt);
}

public TelnetOperator(String termtype){
telnet = new TelnetClient(termtype);
}

public TelnetOperator(){
telnet = new TelnetClient();
}

/**
* 登录到目标主机
* @param ip
* @param port
* @param username
* @param password
*/
public void login(String ip, int port, String username, String password){
try {
telnet.connect(ip, port);
in = telnet.getInputStream();
out = new PrintStream(telnet.getOutputStream());
readUntil("login:");
write(username);
readUntil("password:");
write(password);
String rs = readUntil(null);
if(rs!=null&&rs.contains("Login Failed")){
throw new RuntimeException("登录失败");
}
} catch (Exception e) {
throw new RuntimeException(e);
}
}

/**
* 读取分析结果
*
* @param pattern 匹配到该字符串时返回结果
* @return
*/
public String readUntil(String pattern) {
StringBuffer sb = new StringBuffer();
try {
char lastChar = (char)-1;
boolean flag = pattern!=null&&pattern.length()>0;
if(flag)
lastChar = pattern.charAt(pattern.length() - 1);
char ch;
int code = -1;
while ((code = in.read()) != -1) {
ch = (char)code;
sb.append(ch);

//匹配到结束标识时返回结果
if (flag) {
if (ch == lastChar && sb.toString().endsWith(pattern)) {
return sb.toString();
}
}else{
//如果没指定结束标识,匹配到默认结束标识字符时返回结果
if(ch == promptChar)
return sb.toString();
}
//登录失败时返回结果
if(sb.toString().contains("Login Failed")){
return sb.toString();
}
}
} catch (Exception e) {
e.printStackTrace();
}
return sb.toString();
}

/**
* 发送命令
*
* @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 distinct(){
try {
if(telnet!=null&&!telnet.isConnected())
telnet.disconnect();
} catch (IOException e) {
e.printStackTrace();
}
}

public void setPrompt(String prompt) {
if(prompt!=null){
this.prompt = prompt;
this.promptChar = prompt.charAt(prompt.length()-1);
}
}

public static void main(String[] args) {
TelnetOperator telnet = new TelnetOperator("VT220",">"); //Windows,用VT220,否则会乱码
telnet.login("192.168.2.19", 23, "administrator", "123456");
String rs = telnet.sendCommand("ipconfig");
try {
rs = new String(rs.getBytes("ISO-8859-1"),"GBK"); //转一下编码
} catch (UnsupportedEncodingException e) {
e.printStackTrace();
}
System.out.println(rs);
}

}
分享到:
评论

相关推荐

    使用java实现telnet-client工具分享

    总的来说,这个简单的Java Telnet客户端示例展示了如何使用Apache Commons Net库来建立telnet连接、发送数据和接收响应。实际项目中,可能还需要处理更多复杂情况,如异常处理、心跳维持、交互式命令的发送和解析等...

    java 实现telnet服务器执行脚本

    以下是从给定文件中提取的关于如何使用Java实现Telnet服务器执行脚本的重要知识点。 #### 1. 导入必要包 首先,为了与Telnet服务器进行交互,我们需要导入`java.io.InputStream`和`java.io.PrintStream`用于处理...

    简易的telnet操作java.rar_Telnet-JAVA_java telnet_telnet_telnet in jav

    在“简易的telnet操作java.txt”中,可能包含了一个使用`TelnetClient`的基本示例代码。通常,这样的代码会涉及以下步骤: 1. **导入必要的库**:导入`jcpt.telnet.TelnetClient`和其他相关类。 2. **创建`Telnet...

    Java Telnet客户端实例源码

    Java Telnet客户端是一种基于TCP协议的应用程序,它允许用户通过Java编程语言与远程服务器上的Telnet服务进行交互。在Java中实现一个Telnet客户端可以帮助开发者远程控制或测试其他支持Telnet的服务,例如网络设备...

    telnetd_java-1.0.zip_java telnet_java telnet server_java telnetd

    在本文中,我们将深入探讨Java TelnetD库(可嵌入式telnet守护进程)的核心概念、功能以及如何使用。 首先,telnetd是一个守护进程,通常在操作系统后台运行,提供一个标准的TCP/IP端口供telnet客户端连接。Java ...

    java实现模拟SSH和telnet登陆(实现命令的发送和接受)

    Java 实现模拟 SSH 和 Telnet 登陆,以及发送与接收命令是网络编程中常见的需求,主要应用于自动化测试、远程系统管理或数据交换等场景。在本文中,我们将深入探讨如何利用 Java 实现这一功能。 首先,SSH(Secure ...

    apache_net.zip_apache teln_apache telnet_java telnet_java telnet

    在描述中提到的"java的telnet example"可能是指包含的一些示例代码,这些代码演示了如何使用Apache Net库来创建telnet客户端或服务器。 TFTP(Trivial File Transfer Protocol)协议则是一个简单文件传输协议,常...

    java远程telnet ftp和ssh连接的方法

    本文将详细介绍如何使用Java实现对远程服务器的Telnet、SSH(Secure Shell)和FTP(File Transfer Protocol)连接。 1. **Java连接Telnet** Telnet是一种协议,允许用户通过网络在远程主机上执行命令。在Java中,...

    Java Telnet客户端实例源码.zip_Java Telnet客户端实例源码_telnet

    这个"Java Telnet客户端实例源码.zip"压缩包包含了一个Java实现的Telnet客户端示例代码,可以帮助开发者理解如何在Java环境中构建一个功能完备的Telnet客户端。 在Java中实现一个Telnet客户端主要涉及以下知识点: ...

    java远程进行telnet,ftp,ssh连接的方法及源代码.rar

    `TestTelnet.java`可能就是一个使用Java进行telnet连接的示例代码,你可以通过这个例子学习如何建立连接,发送命令并接收响应。 接着是ftp(文件传输协议),用于在网络上进行文件传输。Java的标准库`java.net....

    基于java的Telnet客户端实例源码.zip

    本实例源码提供了一个基础的Java Telnet客户端示例,帮助开发者理解如何在Java中构建这样的功能。 首先,我们需要了解什么是Telnet协议。Telnet是一种标准的Internet协议,允许用户通过Internet进行远程登录到另一...

    telnet ssh jar

    在实际应用中,要使用这些`jar`文件,开发者首先需要了解`SSH`和`telnet`的基本概念和工作流程,然后根据提供的API文档或者示例代码来编写程序。对于`SSH`,通常需要配置服务器地址、端口、用户名和密码(或公钥私钥...

    JAVA-TELNET

    本教程主要探讨如何使用Java编程语言实现对设备的TELNET交互功能,以实现最佳的设备管理体验。下面我们将深入讨论相关知识点。 一、Java TELNET库的引入 Java本身并不直接支持TELNET协议,但我们可以借助第三方库,...

    JAVA中检查网络是否是通的

    在Java中,可以使用 `java.net.Socket` 类来模拟 Telnet 连接,实现网络可达性的检查。以下是一个简单的示例代码: ```java import java.io.IOException; import java.net.InetSocketAddress; import java.net....

    Telnet的java版客户端程序及架包

    9. **示例代码**:为了便于用户快速上手,Java Telnet客户端通常会附带一些示例代码,展示如何在项目中集成和使用。 总之,这个“Telnet的Java版客户端程序”是一个实用的工具,对于需要进行远程网络控制的Java...

    java_6_source.rar_LOTUS_telnet java_简单计算器java

    这里的代码可能是用于建立一个Java客户端,使用telnet协议连接到Domino服务器,进行数据查询或者交互操作。TelnetApp.java可能就是一个实现此类功能的基础类,它允许远程登录并执行命令。 其次,"java实现URL带参数...

    基于Java的实例开发源码-Telnet客户端实例源码.zip

    在压缩包中的"codefans.net"文件可能是开发者的注释、文档或者项目主页链接,提供关于这个Java Telnet客户端的更多上下文信息,例如项目的详细说明、使用示例或者如何构建和运行代码。 总的来说,这个Java Telnet...

    java源码包---java 源码 大量 实例

    Java Telnet客户端实例源码 一个目标文件,演示Socket的使用。 Java 组播组中发送和接受数据实例 3个目标文件。 Java读写文本文件的示例代码 1个目标文件。 java俄罗斯方块 一个目标文件。 Java非对称加密源码...

    实用java简历的例子

    【Java简历示例分析】 Java简历是展示求职者在编程领域技能和经验的重要文档,尤其对于寻求Java软件工程师职位的求职者来说,一份详尽且突出个人能力的简历至关重要。以下将从标题和描述中提取关键知识点,并进行...

Global site tag (gtag.js) - Google Analytics