当前位置:编程学习 > JAVA >>

小弟做的一个端口扫描器,真诚恳请大家指导修改




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 端口扫描器 --------------------编程问答-------------------- 恳请大家帮忙 --------------------编程问答-------------------- 需要这么麻烦吗?一个迭代或几个for循环就可以了,不过现在没有时间帮你写,之前写过,很少几行代码。 --------------------编程问答--------------------
引用 2 楼 lizhengguang 的回复:
需要这么麻烦吗?一个迭代或几个for循环就可以了,不过现在没有时间帮你写,之前写过,很少几行代码。


求指导啊大哥,实在不会,有时间教教小弟吧
补充:Java ,  Java SE
CopyRight © 2012 站长网 编程知识问答 www.zzzyk.com All Rights Reserved
部份技术文章来自网络,