在此示例中,您将看到如何创建一个简单的端口扫描程序以检查指定主机名的开放端口。
package org.nhooo.example.network; import java.io.IOException; import java.net.InetAddress; import java.net.Socket; public class PortScanner { public static void main(String[] args) throws Exception { String host = "localhost"; InetAddress inetAddress = InetAddress.getByName(host); String hostName = inetAddress.getHostName(); for (int port = 0; port <= 65535; port++) { try { Socket socket = new Socket(hostName, port); String text = hostName + " is listening on port " + port; System.out.println(text); socket.close(); } catch (IOException e) { // 空挡块 } } } }
上面的代码片段的结果是:
localhost is listening on port 53 localhost is listening on port 80 localhost is listening on port 443 localhost is listening on port 631 localhost is listening on port 1099 localhost is listening on port 3306 localhost is listening on port 4380 localhost is listening on port 6942 localhost is listening on port 8005 localhost is listening on port 8009 localhost is listening on port 8021 localhost is listening on port 8080 ...