特定のホストでポート 443 が開いているかどうかを確認する次のコードがあります。
import java.net.*;
import java.io.IOException;
public class Scan {
public static void main (String[] args) {
String host="put hostname here";
int port=443;
try{
Socket s = new Socket(host,port);
System.out.println("Can listen on port "+port+
" in host "+host+" is open");
} //end try
catch (IOException ex)
{
//remote host is not listening on port 443
System.out.println("Can not listen on port "+port+
" of host "+host);
} //end catch
}
}
私の質問は次のとおりです。特定のホストでポート 443 が開いていない場合、ホストのグループをチェックする必要があるため、プログラムが非常に遅くなります。コードを改善してポート 443 のスキャンを高速化し、同時に信頼性を維持する方法はありますか? ソケットを使用する以外に、Javaプログラミングを使用してポートスキャンを行う方法はありますか?
私が持っているホスト名は接続されているので、スキャンの前に ping を実行しても役に立たないことに注意してください。ポート 443 が開いているか閉じているかを確認するだけで済みます。