package li.net; import java.net.InetAddress; import java.net.Socket; import java.util.concurrent.ExecutorService; import java.util.concurrent.Executors; public class PortScanner { static ExecutorService executorService = Executors.newFixedThreadPool(100); public static void main(String[] args) { final String ip = "221.237.157.88"; for (int i = 0; i <= 65535; i++) { final Integer port = i; executorService.submit(new Runnable() { public void run() { if (check(ip, port)) { System.out.println(ip + "\t" + port); } } }); } } public static Boolean check(String ip, Integer port) { try { InetAddress address = InetAddress.getByName(ip); Socket socket = new Socket(address, port); return true; } catch (Exception e) { return false; } } }