导航:首页 > 编程语言 > javatelnet客户端

javatelnet客户端

发布时间:2023-07-05 23:42:57

『壹』 java socket编程中,telnet到server客户端输入如退格(backspace)或上下左右等只显示字符而不是实现其功能

不是,你的删除键也是一个键值,所以会记下例如[a
如果你想删除的请按ctrl+backspace来删除

『贰』 java连接telnet环境的代码,(不要通过结尾字符来判断的),

建议设置读取中断时长,如果超过时长表示,该输入用户名/密码了。
tc.setSoTimeout(timeout); tc是 TelnetClient

『叁』 java使用telnet连接远程服务器调用cmd命令时 报堆溢出错误是什么原因

  1. 如果执行一次没问题,执行多次后,出现内存溢出,检查代码,查看流是否都已经关闭,没有疏漏。

  2. 如果程序启动后,第一次执行就出现内存溢出错误,设置你的ide,调高分配内存。

『肆』 用java实现ssh/telnet跳转登录

Runtime.getRuntime().exec("")

获取输入输出流,模拟登录

『伍』 急,java中telnet访问远程电脑,然后执行cmd命令,再获取返回值。

需要个jar包:commons-net-3.3-bin.zip

下载地址:http://commons.apache.org/proper/commons-net/download_net.cgi


你找的代码我修改过了,复制直接使用。linux系统需要先开启telnet服务

//执行的命令
System.out.println(she.sendCommand("ll"));

这个输入linux 命令

importjava.io.InputStream;
importjava.io.PrintStream;

importorg.apache.commons.net.telnet.TelnetClient;

publicclassShell{
privateTelnetClienttelnet=newTelnetClient();

privateInputStreamin;

privatePrintStreamout;

privatecharprompt='$';//普通用户结束

publicShell(Stringip,intport,Stringuser,Stringpassword){
try{
telnet.connect(ip,port);
in=telnet.getInputStream();
out=newPrintStream(telnet.getOutputStream());
//根据root用户设置结束符
this.prompt=user.equals("root")?'#':'>';
login(user,password);
}catch(Exceptione){
e.printStackTrace();
}
}

/**
*登录
*
*@paramuser
*@parampassword
*/
publicvoidlogin(Stringuser,Stringpassword){
//read()Until("login:");
readUntil("login:");
write(user);
readUntil("Password:");
write(password);
readUntil(prompt+"");
}

/**
*读取分析结果
*
*@parampattern
*@return
*/
publicStringreadUntil(Stringpattern){
try{
charlastChar=pattern.charAt(pattern.length()-1);
StringBuffersb=newStringBuffer();
charch=(char)in.read();
while(true){
sb.append(ch);
if(ch==lastChar){
if(sb.toString().endsWith(pattern)){
returnsb.toString();
}
}
ch=(char)in.read();
System.out.print(ch);
}
}catch(Exceptione){
e.printStackTrace();
}
returnnull;
}

/**
*写操作
*
*@paramvalue
*/
publicvoidwrite(Stringvalue){
try{
out.println(value);
out.flush();
}catch(Exceptione){
e.printStackTrace();
}
}

/**
*向目标发送命令字符串
*
*@paramcommand
*@return
*/
publicStringsendCommand(Stringcommand){
try{
write(command);
returnreadUntil(prompt+"");
}catch(Exceptione){
e.printStackTrace();
}
returnnull;
}

/**
*关闭连接
*/
publicvoiddisconnect(){
try{
telnet.disconnect();
}catch(Exceptione){
e.printStackTrace();
}
}

publicstaticvoidmain(String[]args){
// TelnetClienttelnet=newTelnetClient();
try{
Shellshe=newShell("192.168.1.10",23,"root","123456");
System.out.println(she);
//执行的命令
System.out.println(she.sendCommand("ll"));
she.disconnect();

}catch(Exceptione){
//TODO:handleexception
}

}
}

『陆』 java代码访问telnet,并受到返回值

那就自己重写方法,把返回的CMD信息字符串截取,截取你想要的信息。做一个工具类,直接调用工具类方法就行了,然后你还可以把工具类放到CSDN上赚积分,哈哈。

『柒』 如何用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功能。

/*我想这就是你想要的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();
}
}
}

阅读全文

与javatelnet客户端相关的资料

热点内容
遇见不安全网站怎么办 浏览:251
哪个app有庆余年电视剧 浏览:420
iphone5s视频时很黑 浏览:601
js获取端口号 浏览:347
手机短息发的链接病毒苹果手机 浏览:724
win10专业忘记家庭组密码 浏览:176
南宁applestore几楼 浏览:296
java字符串怎么初始化 浏览:349
医美哪个app好 浏览:768
代码编程和机器人编程哪个好 浏览:875
90版本男法 浏览:796
win10桌面字体难看 浏览:848
三菱fx5u支持哪些编程 浏览:7
优酷在文件夹在哪里 浏览:91
趣打印的数据文件是什么 浏览:871
linuxjava程序 浏览:483
苹果6splus数据线图片 浏览:98
苹果官网数据如何恢复 浏览:251
spss怎么拆分数据 浏览:306
photoshop复位所有工具 浏览:492

友情链接