import java.net.*;
import java.io.*;
import java.util.*;
public class Test {
public static void main(String[] args){
ArrayList result = new ArrayList();
String ip = null;
ip = args[0];
int startPort = Integer.parseInt(args[1]);
int endPort = Integer.parseInt(args[2]);
//获得终止端口号,同上
if(startPort<1||startPort>65535||endPort<1||endPort>65535){
System.out.printf("端口范围必须在1~65535以内!");
return;
}else if(startPort>endPort){ //比较起始端口和终止端口
System.out.println("端口输入有误! 起始端口必须小于终止端口");
return;
}
try{
InetAddress.getByName( ip);
}catch(UnknownHostException e){
System.out.println("无法找到 "+ ip);
return;
}
for(int nport=startPort;nport<=endPort;nport++){
try{
System.out.print("Scanning "+nport);
Socket s=new Socket(InetAddress.getByName( ip),nport);
s.close(); //关闭连接
result.add(""+nport);
System.out.println(" : open"); //打印状态
}catch(IOException e){
System.out.println(":close"); //打印状态
}
} System.out.println("打印连接成功端口如下:");
System.out.println("主机:"+ip+" 主机名:+localhost");
System.out.print("端口 状态");
System.out.println("");
ListIterator li = result.listIterator();
while(li.hasNext()){ //如果li里面有元素
System.out.println(li.next().toString()+" Open");
} }
}java端口扫描器
解决方案 »
免费领取超大流量手机卡,每月29元包185G流量+100分钟通话, 中国电信官方发货