导航:首页 > 程序命令 > java执行telnet命令

java执行telnet命令

发布时间:2022-11-14 07:39:17

❶ 如何用java实现telnet的登录及实现命令

参考一下代码:

用telnet是这样:telnet time-A.timefreq.bldrdoc.gov 13

用socket是这样:

1. import java.io.*;
2. import java.net.*;
3.
4. /**
5. This program makes a socket connection to the atomic clock
6. in Boulder, Colorado, and prints the time that the
7. server sends.
8. */
9. public class SocketTest
10. {
11. public static void main(String[] args)
12. {
13. try
14. {
15. Socket s = new Socket("time-A.timefreq.bldrdoc.gov",
16. 13);
17.
18. BufferedReader in = new BufferedReader
19. (new InputStreamReader(s.getInputStream()));
20. boolean more = true;
21. while (more)
22. {
23. String line = in.readLine();
24. if (line == null)
25. more = false;
26. else
27. System.out.println(line);
28. }
29.
30. }
31. catch (IOException e)
32. {
33. e.printStackTrace();
34. }
35. }
36. }

❷ java代码访问telnet,并受到返回值

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:");
readUntil("login:");
write(user);
readUntil("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("192.168.1.10", 23, "root", "123456");
System.out.println(she);
//执行的命令
System.out.println(she.sendCommand("ll"));
she.disconnect();

} catch (Exception e) {
// TODO: handle exception
}

}
}

❸ Java编程:解决一个telnet的问题,希望大牛们能够提供一个解决方案,谢谢!

这个我还这能帮个忙。。。稍等片刻上代码仅供参考
Runtime run = Runtime.getRuntime();
Process p = run.exec(cmd);// 启动另一个进程来执行命令
BufferedInputStream in = new BufferedInputStream(p.getInputStream());
System.out.println(Runtime.class.toString());

InputStreamReader input = new InputStreamReader(in);

System.out.println(input.getEncoding());

BufferedReader inBr = new BufferedReader(new InputStreamReader(in,"gbk"));//编码方式自己多试下一般都是GBK的
其中CMD为你要执行的命令。已经给到输入流这步了。。不用再教怎么输入到你要的文件里面去了吧??

❹ java中telnet到远程服务器,然后执行cmd命令,求代码,谢谢了

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)
{
// readUntil("login:");
readUntil("login:");
write(user);
readUntil("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 ftp ssh连接的方法

文件传输协议(File Transfer Protocol, FTP)FTP是用于在网络上进行文件传输的一套标准协议。 它属于网络协议组的应用层。 FTP是一个8位的客户端-服务器协议, 能操作任何类型的文件而不需要进一步处理, 就像MIME或Unencode一样。但是, FTP有着极高的延时,这意味着, 从开始请求到第一次接收需求数据之间的时间会非常长, 并且不时的必需执行一些冗长的登陆进程。 概述 FTP服务一般运行在20和21两个端口。 端口20用于在客户端和服务器之间传输数据流, 而端口21用于传输控制流,并且是命令通向ftp服务器的进口。 当数据通过数据流传输时,控制流处于空闲状态。 而当控制流空闲很长时间后,客户端的防火墙会将其会话置为超时, 这样当大量数据通过防火墙时,会产生一些问题。此时, 虽然文件可以成功的传输,但因为控制会话会被防火墙断开, 传输会产生一些错误。 FTP实现的目标: 促进文件的共享(计算机程序或数据) 鼓励间接或者隐式的使用远程计算机 向用户屏蔽不同主机中各种文件存储系统的细节 可靠和高效的传输数据 缺点: 密码和文件内容都使用明文传输,可能产生不希望发生的窃听。 因为必需开放一个随机的端口以建立连接,当防火墙存在时, 客户端很难过滤处于主动模式下的FTP流量。 这个问题通过使用被动模式的FTP得到了很大解决。 服务器可能会被告知连接一个第三方计算机的保留端口。 FTP虽然可以被终端用户直接使用, 但是它是设计成被FTP客户端程序所控制。 运行FTP服务的许多站点都开放匿名服务,在这种设置下, 用户不需要帐号就可以登录服务器,默认情况下, 匿名用户的用户名是:“anonymous”。 这个帐号不需要密码, 虽然通常要求输入用户的邮件地址作为认证密码, 但这只是一些细节或者此邮件地址根本不被确定, 而是依赖于FTP服务器的配置情况。 [编辑] 主动和被动模式 FTP有两种使用模式:主动和被动。 主动模式要求客户端和服务器端同时打开并且监听一个端口以建立连 接。在这种情况下,客户端由于安装了防火墙会产生一些问题。 所以,创立了被动模式。 被动模式只要求服务器端产生一个监听相应端口的进程, 这样就可以绕过客户端安装了防火墙的问题。 一个主动模式的FTP连接建立要遵循以下步骤: 客户端打开一个随机的端口(端口号大于1024,在这里, 我们称它为x), 同时一个FTP进程连接至服务器的21号命令端口。此时, 源端口为随机端口x,在客户端,远程端口为21,在服务器。 客户端开始监听端口(x+1),同时向服务器发送一个端口命令( 通过服务器的21号命令端口), 此命令告诉服务器客户端正在监听的端口号并且已准备好从此端口接 收数据。这个端口就是我们所知的数据端口。 服务器打开20号源端口并且建立和客户端数据端口的连接。此时, 源端口为20,远程数据端口为(x+1)。 客户端通过本地的数据端口建立一个和服务器20号端口的连接, 然后向服务器发送一个应答,告诉服务器它已经建立好了一个连接。 [编辑] FTP和网页浏览器 大多数最新的网页浏览器和文件管理器都能和FTP服务器建立连接 。这使得在FTP上通过一个接口就可以操控远程文件, 如同操控本地文件一样。 这个功能通过给定一个FTP的URL实现,形如ftp://< 服务器地址>(例如, ftp://ftp.gimp.org )。是否提供密码是可选择的,如果有密码,则形如ftp://< login>:<password>@< ftpserveraddress>。 大部分网页浏览器要求使用被动FTP模式, 然而并不是所有的FTP服务器都支持被动模式。

❻ java实现Telnet功能。

/*我想这就是你想要的telnet吧,既然我下面用的是apache开源包,你下来自己
*看看能不能自己重写。方法已经给你提供了。
*要是可以的话结题吧.哈O(∩_∩)
*/
import java.io.InputStream;
import java.io.PrintStream;
import org.apache.commons.net.telnet.TelnetClient;

/**
* 利用apache net 开源包,使用telnet方式获取AIX主机信息
* @version 1.2
*/
public class NetTelnet {

// Telnet对象
private TelnetClient telnet = new TelnetClient();

private InputStream in;

private PrintStream out;

// 提示符。具体请telnet到AIX主机查看
private char prompt = '#';

// telnet端口
private String port;

// 用户
private String user;

// 密码
private String password;

// IP地址
private String ip;

public NetTelnet() {

try {
// AIX主机IP
this.ip = "219.243.12.10";
this.password = "05933663007";
this.user = "administrator";
this.port = "23";
telnet.connect(ip, Integer.parseInt(port));
System.out.println("开始获取输入流...");
in = telnet.getInputStream();
out = new PrintStream(telnet.getOutputStream());
// 登录
/* readUntil("login: ");
write(user);
readUntil("Password: ");
write(password);
readUntil(prompt + " ");*/
} catch (Exception e) {
e.printStackTrace();
}
}

/**
* 读取分析结果
*
* @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();
}
} 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) {
try {
System.out.println("开始执行telnet......");
NetTelnet telnet = new NetTelnet();
// 通过aix的命令“查找主机名称”获取数据
// 命令是 "hostname"
// 不熟悉命令的参考<<AIX网络管理手册>>
System.out.println("开始发送hostname命令");
String result = telnet.sendCommand("hostname");
System.out.println("显示结果");
System.out.println(result);
// 最后一定要关闭
telnet.disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}

❼ 求段java代码,根据数据库中的IP和用户名密码,远程telnet到设备

直接给你java关于telnet的一个例子

publicclassMain{publicstaticvoidmain(String[]args){try{
TelnetClienttelnetClient=newTelnetClient("vt200");//指明Telnet终端类型,否则会返回来的数据中文会乱码
telnetClient.setDefaultTimeout(5000);//socket延迟时间:5000ms
telnetClient.connect("127.0.0.1",23);//建立一个连接,默认端口是23
InputStreaminputStream=telnetClient.getInputStream();//读取命令的流
PrintStreampStream=newPrintStream(telnetClient.getOutputStream());//写命令的流
byte[]b=newbyte[1024];intsize;
StringBuffersBuffer=newStringBuffer(300);while(true){//读取Server返回来的数据,直到读到登陆标识,这个时候认为可以输入用户名
size=inputStream.read(b);if(-1!=size){
sBuffer.append(newString(b,0,size));if(sBuffer.toString().trim().endsWith("login:")){break;
}
}
}
System.out.println(sBuffer.toString());
pStream.println("exit");//写命令
pStream.flush();//将命令发送到telnetServer
if(null!=pStream){
pStream.close();
}
telnetClient.disconnect();
}catch(SocketExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();
}catch(IOExceptione){//TODOAuto-generatedcatchblocke.printStackTrace();
}
}
}

❽ java实现telnet 如何发送 y/n

参考一下代码:

用telnet是这样:telnet time-A.timefreq.bldrdoc.gov 13

用socket是这样:

1.importjava.io.*;
2.importjava.net.*;
3.
4./**
5.
6.inBoulder,Colorado,andprintsthetimethatthe
7.serversends.
8.*/
9.publicclassSocketTest
10.{
11.publicstaticvoidmain(String[]args)
12.{
13.try
14.{
15.Sockets=newSocket("time-A.timefreq.bldrdoc.gov",
16.13);
17.
18.BufferedReaderin=newBufferedReader
19.(newInputStreamReader(s.getInputStream()));
20.booleanmore=true;
21.while(more)
22.{
23.Stringline=in.readLine();
24.if(line==null)
25.more=false;
26.else
27.System.out.println(line);
28.}
29.
30.}
31.catch(IOExceptione)
32.{
33.e.printStackTrace();
34.}
35.}
36.}
阅读全文

与java执行telnet命令相关的资料

热点内容
如何在vps上搭建自己的代理服务器 浏览:742
nginxphp端口 浏览:401
内脏pdf 浏览:150
怎么看云服务器架构 浏览:83
我的世界国际服为什么登不进服务器 浏览:994
微盟程序员老婆 浏览:928
intellij创建java 浏览:110
java连接odbc 浏览:38
启动修复无法修复电脑命令提示符 浏览:359
手机编程是什么 浏览:98
山东移动程序员 浏览:163
苏州java程序员培训学校 浏览:477
单片机液晶驱动 浏览:854
魔拆app里能拆到什么 浏览:131
新预算法的立法理念 浏览:144
wdcpphp的路径 浏览:134
单片机p0口电阻 浏览:926
浏览器中调短信文件夹 浏览:594
五菱宏光空调压缩机 浏览:68
为什么app占用几百兆 浏览:680