在远程计算机中运行命令的 Web 应用程序
Web app that runs commands in remote machine
我想开发一个 Web 应用程序,它可以向远程主机运行 "ping" 或 "telnet" 等命令。
该应用程序应该可以从任何机器访问。
例如,我应该能够从任何地方打开到我家用 PC 的 telnet 会话。
请我需要想法而不是代码。
public class Ping extends HttpServlet{
public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
Process p = Runtime.getRuntime().exec("ping google.com");
BufferedReader inputStream = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String res="";
String s = ""; while ((s = inputStream.readLine()) != null) {res=res+s+"\n";}
request.setAttribute( "test", res );
this.getServletContext().getRequestDispatcher( "/WEB-INF/test.jsp" ).forward( request, response );
}
}
将您的网络应用分成两部分,一部分负责与浏览器交互,另一部分负责实际工作。
前端生成HTML(可能使用JSP,因为你使用的是Java)和
- 一个标记为 'ping' 的按钮,当按下该按钮时,发送一个表单并显示 ping 结果
- 标签为 'telnet' 的文本输入和标签为 'send' 的按钮,当按下按钮时,发送表单并显示命令的输出
后端是 Java 代码,根据请求实际执行 'ping' 或 'telnet',并捕获结果,以便可以通过前端。尽管您可以通过 Java 实现这两种协议,但启动现有的 ping 和 ssh 客户端可能要容易得多(ssh = 安全 telnet;应该 不 使用 telnet),重定向它们输出到一个文件,return文件的内容。
第 2 部分根本不需要知道它在第 1 部分中被使用 - 它是纯 Java 代码实现类似
public static String ping(String ip, int timeoutMs) {
// returns ping output as a String, or error if timeout reached
}
public static String telnet(String ip, int port, String command, int timeoutMs) {
// returns output of ssh -c command to chosen ip:port
// must have public-key login to chosen machine for this to work
// without password prompts
// returns error description if timeout reached
}
我想开发一个 Web 应用程序,它可以向远程主机运行 "ping" 或 "telnet" 等命令。 该应用程序应该可以从任何机器访问。
例如,我应该能够从任何地方打开到我家用 PC 的 telnet 会话。 请我需要想法而不是代码。
public class Ping extends HttpServlet{
public void doGet( HttpServletRequest request, HttpServletResponse response ) throws ServletException, IOException{
Process p = Runtime.getRuntime().exec("ping google.com");
BufferedReader inputStream = new BufferedReader(
new InputStreamReader(p.getInputStream()));
String res="";
String s = ""; while ((s = inputStream.readLine()) != null) {res=res+s+"\n";}
request.setAttribute( "test", res );
this.getServletContext().getRequestDispatcher( "/WEB-INF/test.jsp" ).forward( request, response );
}
}
将您的网络应用分成两部分,一部分负责与浏览器交互,另一部分负责实际工作。
前端生成HTML(可能使用JSP,因为你使用的是Java)和
- 一个标记为 'ping' 的按钮,当按下该按钮时,发送一个表单并显示 ping 结果
- 标签为 'telnet' 的文本输入和标签为 'send' 的按钮,当按下按钮时,发送表单并显示命令的输出
后端是 Java 代码,根据请求实际执行 'ping' 或 'telnet',并捕获结果,以便可以通过前端。尽管您可以通过 Java 实现这两种协议,但启动现有的 ping 和 ssh 客户端可能要容易得多(ssh = 安全 telnet;应该 不 使用 telnet),重定向它们输出到一个文件,return文件的内容。
第 2 部分根本不需要知道它在第 1 部分中被使用 - 它是纯 Java 代码实现类似
public static String ping(String ip, int timeoutMs) {
// returns ping output as a String, or error if timeout reached
}
public static String telnet(String ip, int port, String command, int timeoutMs) {
// returns output of ssh -c command to chosen ip:port
// must have public-key login to chosen machine for this to work
// without password prompts
// returns error description if timeout reached
}