java-web - java 如何端口扫描出ssh端口?
本文介绍了java-web - java 如何端口扫描出ssh端口?的处理方法,对大家解决问题具有一定的参考价值,需要的朋友们下面随着小编来一起学习吧!
问题描述
问 题
如题,java如何端口扫描出ssh端口?
(可以通过socket链接确认端口是否开放,1024之内的有默认提供的服务,但是ssh端口一改,如何确认扫描出的就是ssh端口?)
解决方案
在centos 7
上测试了一下,比较简单粗暴.代码如下
import java.io.IOException;
import java.io.InputStreamReader;
import java.io.LineNumberReader;
/**
* Created by nicholas on 11/19/2016.
*/
public class GetProcessInfo {
private static final String[] SHELL = {"sh", "-c", "lsof -Pnl +M -i4 | grep sshd"};
private static final String KEY = "(LISTEN)";
private static String runCommand(String[] shell) throws IOException, InterruptedException {
String result = "";
Process pos = Runtime.getRuntime().exec(shell);
pos.waitFor();
InputStreamReader ir = new InputStreamReader(pos.getInputStream());
LineNumberReader input = new LineNumberReader(ir);
String ln = "";
while ((ln = input.readLine()) != null) {
String temp = ln.toString();
if (temp.contains(KEY)) {
result = temp;
}
}
input.close();
ir.close();
return result;
}
public static int getPort() throws IOException, InterruptedException {
String result = runCommand(SHELL);
if ("".equals(result)) {
System.out.println("get sshd services fail....");
return 0;
}
String[] split = result.split(":")[1].split(" ");
int port = Integer.valueOf(split[0]);
return port;
}
public static void main(String[] args) throws IOException, InterruptedException {
System.out.println("sshd port = " + getPort());
}
}
执行结果
这篇关于java-web - java 如何端口扫描出ssh端口?的文章就介绍到这了,希望我们推荐的答案对大家有所帮助,也希望大家多多支持IT屋!
查看全文