java中telnet到远程服务器,然后执行cmd命令,求代码,谢谢了

java中telnet到远程服务器,然后执行cmd命令,求代码,谢谢了,第1张

package place.in.javaeye

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】图标。

2、在弹出的菜单列表中单击【控制面板】选项

3、将【控制面板】文件夹的【查看方式】更改为【大图标】选项。

4、在下方的程序列表中单击【程序和功能】选项。

5、在【程序和功能】文件夹的左侧点击【打开/关闭windows功能】选项。

6、找到【Telnet服务器】选项。

7、勾选【Telnet服务器】选项并单击【确定】按钮即可。


欢迎分享,转载请注明来源:夏雨云

原文地址:https://www.xiayuyun.com/zonghe/279433.html

(0)
打赏 微信扫一扫微信扫一扫 支付宝扫一扫支付宝扫一扫
上一篇 2023-04-21
下一篇2023-04-21

发表评论

登录后才能评论

评论列表(0条)

    保存