java telnet

需要敲入太多的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();
		}
	}
}



  • 0
    点赞
  • 2
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值