扫描非本地主机上的端口

时间:2012-05-28 17:46:13

标签: java network-programming port-scanning

我正在用Java编写端口扫描程序。我正在使用for循环来计算从0到100的端口,在每个端口上构建一个套接字并查看它是否抛出异常。但是,当我尝试扫描非本地端口时,例如在“www.google.com”上扫描第一个端口然后停止(字面上程序只是等待),如果有人知道为什么这是我想知道的。 这是扫描方法的代码。请注意,变量ia是一个InetAddress对象

private void scan(int low, int high){
    for(int port =low; port<high; port++){
    try {
    connection = new Socket(ia, port);
    r.addPort(port);
    System.out.println("port "+port+" open");
    connection.close();
    } catch (IOException e) {
    System.out.println("port "+port+" not open");
    }
}
}

1 个答案:

答案 0 :(得分:3)

尝试在套接字上设置超时。它会更快失败。

connection.setSoTimeout(10*1000); // milliseconds