java端口扫描器_简单端口扫描器java的设计与实现.doc

简单端口扫描器java的设计与实现.doc

简单端口扫描器java的设计与实现

IPScan类的实现 package scan.pratice; import .InetAddress; import .Socket; import .UnknownHostException; import java.util.ArrayList; import java.util.ListIterator; public class IPScan { static long startTime=System.currentTimeMillis(); //获取开始时间 public static void main(String[] args) { if(args.length !=2){ System.out.println("参数不对"); } int startIP = Integer.parseInt(args[0]); //获得起始IP,因为args[]是String类型,所以要强制转换成int类型 int endIP = Integer.parseInt(args[1]); //获得终止IP,同上 ArrayList result = new ArrayList(); //ip地址扫描 for(int id=startIP;id<=endIP;id++){ String addres= "10.28.23."; try { Socket s=new Socket(addres+id,8000); //建立连接 } catch (UnknownHostException e ) { }catch(Exception e){ //System.out.println(e.toString()); if(e.toString().endsWith(".ConnectException: Connection timed out: connect")){ System.out.println(addres+id+":not exist."); }else{ } } System.out.println(addres+id+":exist."); } } } ListIterator li = result.listIterator(); //获得ArrayList的ListIterator while(li.hasNext()){ //如果li里面有元素 System.out.println(li.next().toString()); //打印出指向的元素,同时将指向下一个元素 } long endTime=System.currentTimeMillis(); //获取结束时间 System.out.println("程序运行时间: "+(endTime-startTime)+"ms"); PortScan类的实现 package scan.pratice; import java.io.IOException; import .InetAddress; import .Socket; import .UnknownHostException; import java.util.ArrayList; import java.util.ListIterator; public class PortScan { static long startTime=System.currentTimeMillis(); //获取开始时间 public static void main(String[] args) { if(args.length !=3){ System.out.println("参数不对"); } String ip = args[0]; //获得我们指定的服务器地址 int startPort = Integer.parseInt(args[1]); //获得起始端口号,因为args[]是String类型,所以要强制转换成int类型 int endPort = Integer.parseInt(args[2]); //获得终止端口号,同上 if(startPort<1||start

  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论
Java端口扫描器是一种用于检测目标主机上开放的网络端口的工具。它可以帮助网络管理员快速识别主机上的漏洞和弱点,以便及时进行修复和加固。下面是关于Java端口扫描器设计实现。 首先,我们需要设计一个程序入口,用于接收用户输入的目标主机IP地址和要扫描的端口范围。然后,我们需要编写一个端口扫描函数,该函数接收目标主机IP和端口号作为参数,并尝试与目标主机建立连接。如果连接成功,表示该端口是开放的;如果连接失败,表示该端口是关闭的。 接下来,我们需要实现多线程并发扫描,以提高程序的效率。可以将端口扫描函数封装为一个Runnable对象,然后创建多个线程同时执行这些任务。这样可以并行地扫描目标主机的多个端口,加快扫描速度。 另外,我们还可以对扫描结果进行处理和展示。可以将扫描结果保存在文件中,或者直接在命令行或GUI界面上展示给用户。这样用户可以清楚地看到目标主机上哪些端口是开放的,哪些是关闭的。 最后,为了提高扫描器的准确性和健壮性,我们可以添加一些异常处理和超时控制。例如,设置连接超时时间,以防止程序长时间等待连接结果而导致的阻塞。另外,还可以添加一些错误处理机制,及时处理因网络原因导致的连接失败或超时错误。 总的来说,设计实现Java端口扫描器需要考虑到用户友好性、效率和稳定性等方面,通过合理的并发处理和异常处理机制,可以使扫描器更加实用和可靠。

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值