需要敲入太多的telnet命令,繁琐,对。是时候解放自己了。
1. 下载java telnet包,请Google搜索 jtelnet-withall.jar的包,其中包含了源代码和jar包
2. 新建java工程,讲下载的包解压缩得到jtelnet.jar,把jtelnet.jar添加到java工程的build path。
3. 把我下面的代码拷贝到src下面的新建的某个packate下面。
1. 下载java telnet包,请Google搜索 jtelnet-withall.jar的包,其中包含了源代码和jar包
2. 新建java工程,讲下载的包解压缩得到jtelnet.jar,把jtelnet.jar添加到java工程的build path。
3. 把我下面的代码拷贝到src下面的新建的某个packate下面。
import java.net.*;
import java.io.*;
import thor.net.*;
class SimpleTelnetTerminalHandler extends DefaultTelnetTerminalHandler//辅助类
implements TelnetConstants {
public void LineFeed() {
System.out.print('\n');
System.out.flush();
}
public void CarriageReturn() {
System.out.print('\r');
System.out.flush();
}
public void BackSpace() {
System.out.print((char) BS);
System.out.flush();
}
public void HorizontalTab() {
System.out.print((char) HT);
System.out.flush();
}
}
public class telnet {
static volatile boolean closed = false;
public static void main(String[] args) {
telnetCloseAuth("192.168.4.5", 5002);//你自己的telnet主机ip和端口(23比较常见)
}
private static void telnetCloseAuth(String inHost, int inPort) {
try {
String host = inHost;
int port = inPort;
URL url = new URL("telnet", host, port, "",
new thor.net.URLStreamHandler());
URLConnection urlConnection = url.openConnection();
urlConnection.connect();
if (urlConnection instanceof TelnetURLConnection) {
((TelnetURLConnection) urlConnection)
.setTelnetTerminalHandler(new SimpleTelnetTerminalHandler());
}
OutputStream out = urlConnection.getOutputStream();
final InputStream in = urlConnection.getInputStream();
(new Thread(new Runnable() {
public void run() {
try {
int ch;
do {
ch = in.read();
if (ch < 0)
return;
System.out.print((char) ch);
System.out.flush();
} while (true);
} catch (Exception e) {
if (!closed)
e.printStackTrace();
}
}
})).start();
int key;
/*while (true) {
key = System.in.read();
if (key == (']' - 64))
break;
out.write(key);
}*/
// 我这里是要执行固定的几个命令,你也可以放开上面的那一段注释,实时的与telnet服务器通信
String[] commands = new String[]{"admin\r\n", "admin\r\n", "vlr\r\n", "CloseAuth 0\r\n"};
for (String cmd:commands){
Thread.sleep(1000);
//System.out.println(cmd);
out.write(cmd.getBytes());
}
Thread.sleep(1000);
((TelnetURLConnection) urlConnection).disconnect();
} catch (Exception e) {
e.printStackTrace();
}
}
}