Shell for Telnet
package com.wz.test;
import java.io.InputStream;
import java.io.PrintStream;
import org.apache.commons.net.telnet.TelnetClient;
public class Shell {
private TelnetClient telnet;
private InputStream in;
private PrintStream out;
private char prompt = '$';
private String pwdString;
public Shell(String ip, int port, String user, String password, int timeout) throws Exception {
telnet = new TelnetClient();
telnet.setConnectTimeout(timeout);
telnet.connect(ip, port);
in = telnet.getInputStream();
out = new PrintStream(telnet.getOutputStream());
this.prompt = user.equals("root") ? '#' : '$';
this.pwdString = "Password";
login(user, password);
}
/**
*
* @Title login
* @author Administrator
* @param user
* @param password
* @return void
*/
public void login(String user, String password) {
readUntil("login:");
write(user);
readUntil(pwdString+":");
write(password);
readUntil(prompt + "");
}
/**
*
* @Title readUntil
* @author Administrator
* @param pattern
* @return
* @return String
*/
public String readUntil(String pattern) {
try {
StringBuffer sb = new StringBuffer();
char lastChar = pattern.charAt(pattern.length() - 1);
char ch = (char) in.read();
while (ch != -1) {
sb.append(ch);
if (ch == lastChar && sb.toString().endsWith(pattern)) {
return sb.toString();
}
ch = (char) in.read();
}
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
*
* @Title write
* @author Administrator
* @param value
*/
public void write(String value) {
try {
out.println(value);
out.flush();
} catch (Exception e) {
e.printStackTrace();
}
}
/**
*
* @Title sendCommand
* @author Administrator
* @param command
* @return
* @return String
*/
public String sendCommand(String command) {
try {
write(command);
return readUntil(prompt + "");
} catch (Exception e) {
e.printStackTrace();
}
return null;
}
/**
*
* @Title disConnect
* @author Administrator
* @return void
*/
public void disConnect() {
try {
if(telnet != null) {
telnet.disconnect();
}
} catch (Exception e) {
e.printStackTrace();
}
}
public static void main(String[] args) {
System.out.println(" Telnet...");
String ip = "192.168.1.242";
int port = 23;
String user = "root";
String password = "123456";
int timeout = 5000;
try {
Shell telnet = new Shell(ip, port, user, password,timeout);
//System.out.println(telnet.sendCommand("mysqldump -uroot -p123456 --verbose --databases erp > /home/wangzi/tmp/qq.sql"));
String rs = telnet.sendCommand("ifconfig");
System.out.println(new String(rs.getBytes("ISO-8859-1"),"GBK"));
telnet.disConnect();
} catch (Exception e) {
System.out.println(" , ip 、 、 、 , Telnet...");
}
}
}
commons-net
이 내용에 흥미가 있습니까?
현재 기사가 여러분의 문제를 해결하지 못하는 경우 AI 엔진은 머신러닝 분석(스마트 모델이 방금 만들어져 부정확한 경우가 있을 수 있음)을 통해 가장 유사한 기사를 추천합니다:
JPA + QueryDSL 계층형 댓글, 대댓글 구현(2)이번엔 전편에 이어서 계층형 댓글, 대댓글을 다시 리팩토링해볼 예정이다. 이전 게시글에서는 계층형 댓글, 대댓글을 구현은 되었지만 N+1 문제가 있었다. 이번에는 그 N+1 문제를 해결해 볼 것이다. 위의 로직은 이...
텍스트를 자유롭게 공유하거나 복사할 수 있습니다.하지만 이 문서의 URL은 참조 URL로 남겨 두십시오.
CC BY-SA 2.5, CC BY-SA 3.0 및 CC BY-SA 4.0에 따라 라이센스가 부여됩니다.