java扫描局域网的端口

Python014

java扫描局域网的端口,第1张

直接上代码:

import java.net.Socket

import java.text.SimpleDateFormat

import java.util.Date

public class PortScanner extends Thread {

private int[] p

Socket ss = null

public PortScanner(int[] p) {

this.p = p

}

public static void main(String[] args) {

for (int i = 0 i < 65535 i = i + 100) {

new PortScanner(new int[] { i + 1, i + 100 }).start()

}

}

@Override

public void run() {

for (int i = p[0] i < p[1] i++) {

try {

ss = new Socket("8.8.8.8", i)

System.out.println("扫描到端口: " + i)

} catch (Exception e) {

// System.out.println("关闭端口: " + i)

}

}

}

}

connect比较简单,就是用Socket+多线程,每个端口创建一次连接,没连上是不会往下执行的,会抛出异常,网上有源码,都是这个方法

syn和FIN还不知道咋实现,可以考虑用本地方法。