导航:首页 > 编程语言 > java调用telnet

java调用telnet

发布时间:2023-10-17 05:39:45

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();
}
}
}

Ⅱ 求助啊, telnet java实现,单元测试没问题,但在web环境中调用

public ConnTelnetUtil() throws InvalidTelnetOptionException, IOException{ telnet=new TelnetClient(); TerminalTypeOptionHandler ttopt = new TerminalTypeOptionHandler( "VT320", false, false, true, false); EchoOptionHandler echoopt = new EchoOptionHandler(true, true, true, true); SuppressGAOptionHandler gaopt = new SuppressGAOptionHandler(true, true, true, true); telnet.addOptionHandler(ttopt); telnet.addOptionHandler(echoopt); telnet.addOptionHandler(gaopt); }哎哟,这个东西的网上资料太少, 要对talnet加3个option才能在web环境下调用另外他自己的timeout是无效的,为了保证池中telnet会话的即使回收,得自己写个子线程监控会话,模拟timeout时间来释放连接。

Ⅲ 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在linux中执行shell脚本,用telnet检测指定IP的端口是否可以连接上

你可以增加两个进程,一个用来监视telnet的输出,另外一个用来监视是不是有错。你分析那个telnet的输出就好了。
import java.io.BufferedReader;
import java.io.IOException;
import java.io.InputStream;
import java.io.InputStreamReader;
public class ExcuteThread extends Thread {
private String name;
public ExcuteThread(String name) {
this.name = name;
}
@Override
public void run() {
try {
Process p = Runtime.getRuntime().exec(name);
InputStream fis = p.getInputStream();
final BufferedReader brError = new BufferedReader(
new InputStreamReader(p.getErrorStream(), "gb2312"));
InputStreamReader isr = new InputStreamReader(fis, "gb2312");
final BufferedReader br = new BufferedReader(isr);
Thread t1 = new Thread() {
public void run() {
String line = null;
try {
while ((line = brError.readLine()) != null) {
// System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (brError != null)
brError.close();
} catch (IOException e) {
e.printStackTrace();
}
}
}
};
Thread t2 = new Thread() {
public void run() {
String line = null;
try {
while ((line = br.readLine()) != null) {
System.out.println(line);
}
} catch (IOException e) {
e.printStackTrace();
} finally {
try {
if (br != null)
br.close();
} catch (IOException e) {
// TODO Auto-generated catch block
e.printStackTrace();
}
}
}
};
t1.start();
t2.start();
} catch (IOException e1) {
// TODO Auto-generated catch block
e1.printStackTrace();
} finally {
}
}
}

阅读全文

与java调用telnet相关的资料

热点内容
凌阳单片机选型 浏览:474
android手机hosts 浏览:95
路由器l2tp服务器地址是什么 浏览:160
做解压手套视频 浏览:620
退役命令文件 浏览:674
linux递归查找文件 浏览:242
哪个app上才能看到免费的名门挚爱 浏览:839
mysql查看表字段的命令 浏览:521
ios里的文件夹怎么用 浏览:164
压缩银行开户时间表 浏览:429
银行人员如何解压 浏览:829
newfile命令快捷键 浏览:569
阿里云物理服务器 浏览:955
灵狐视频app哪个好 浏览:259
大厂退役程序员自述 浏览:254
linux命令watch 浏览:889
加密币哪些平台不撤出中国 浏览:553
max加线命令 浏览:424
app胖瘦模式哪个好用 浏览:724
可以下载源码的软件 浏览:487