import java.io.InputStream
import java.io.PrintStream
import org.apache.commons.net.telnet.TelnetClient
public class Shell
{
private TelnetClient telnet = new TelnetClient()
private InputStream in
private PrintStream out
private char prompt = '$'// 普通用户结束
public Shell(String ip, int port, String user, String password)
{
try
{
telnet.connect(ip, port)
in = telnet.getInputStream()
out = new PrintStream(telnet.getOutputStream())
// 根据root用户设置结束符
this.prompt = user.equals("root") ? '#' : '>'
login(user, password)
}
catch (Exception e)
{
e.printStackTrace()
}
}
/**
* 登录
*
* @param user
* @param password
*/
public void login(String user, String password)
{
//readUntil("login:")
readUntil("login:")
write(user)
readUntil("Password:")
write(password)
readUntil(prompt + "")
}
/**
* 读取分析结果
*
* @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()
System.out.print(ch)
}
}
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) {
TelnetClient telnet = new TelnetClient()
try {
Shell she =new Shell("10.**.***.***", 23, "***", "***")
System.out.println(she)
System.out.println(she.sendCommand("ls"))
she.disconnect()
}catch (Exception e) {
// TODO: handle exception
}
}
}
启动Telnet不成功提示错误是设置错误造成的,重新设置就好了。解决方法如下:
1、在电脑桌面的左下角点击【win】图标。
3、将【控制面板】文件夹的【查看方式】更改为【大图标】选项。
4、在下方的程序列表中单击【程序和功能】选项。
5、在【程序和功能】文件夹的左侧点击【打开/关闭windows功能】选项。
6、找到【Telnet服务器】选项。
7、勾选【Telnet服务器】选项并单击【确定】按钮即可。
欢迎分享,转载请注明来源:夏雨云
评论列表(0条)