现在的位置: 首页 > 综合 > 正文

java telnet

2014年06月15日 ⁄ 综合 ⁄ 共 1863字 ⁄ 字号 评论关闭

需要敲入太多的telnet命令,繁琐,对。是时候解放自己了。
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();
		}
	}
}

【上篇】
【下篇】

抱歉!评论已关闭.