ポートスキャンについての意見があります。JavaでいくつかのIPアドレスのUDPポートをスキャンしています。私のプログラムでは(すべてがOKであると仮定して)、開いているUDPポートを1つしか見つけることができません。一方、「nmap」を介したポートスキャンでは、4つの開いているUDPポートを取得します。Javaコードで複数のポートが見つからない理由を誰かに教えてもらえますか?ちなみに、コードで真のオープンポートを見つけることができます。
int startPortRange=1;
int stopPortRange=1024;
InetAddress address = InetAddress.getByName("bigblackbox.cs.binghamton.edu");
int counter=0;
for(int i=startPortRange; i <=stopPortRange; i++)
{
counter++;
try{
byte [] bytes = new byte[128];
DatagramSocket ds = new DatagramSocket();
DatagramPacket dp = new DatagramPacket(bytes, bytes.length);
ds.setSoTimeout(100);
ds.connect(address, i);
ds.send(dp);
ds.isConnected();
dp = new DatagramPacket(bytes, bytes.length);
ds.receive(dp);
ds.close();
System.out.println("open");
System.out.println(counter);
}
catch(InterruptedIOException e){
//System.out.println("closed");
}
catch(IOException e){
//System.out.println("closed");
}
}
上記のコードの出力は135オープンです
nmapを使用してコマンドラインで同じ操作を行うと、開いているポートが増えます。新規ユーザーのため、画像をアップロードできませんでした。ありがとうございました