我對端口掃描有一個分歧.我在
Java中掃描一些IP地址的UDP端口.在我的程序中(假設一切正常)我只能找到一個開放的UDP端口.在另一方面端口掃描“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在命令行中進行相同的操作時,我獲得了更多的開放端口.
我無法上傳圖片,因為我是新用戶.
謝謝