zoukankan      html  css  js  c++  java
  • ruby用socket扫描端口

    1. require 'socket'  
    2. include Socket::Constants   
    3.   
    4. def scan_port   
    5.   if $*[0] == nil or $*[1] == nil or $*[2] == nil  
    6.     abort "用法示例:ruby #$0 ip地址 开始端口 结束端口 EX:如ruby #$0 localhost 1 1024"  
    7.   end  
    8.   time = Time.now   
    9.   scan $*[0], $*[1], $*[2]   
    10.   puts "\n共耗时:#{Time.now - time}秒"  
    11. end  
    12.   
    13. private   
    14. def scan(address, start_port, end_port)   
    15.   threads = []   
    16.   for port in start_port..end_port   
    17.     threads << Thread.new(port) do |theport|   
    18.       begin  
    19.         socket = Socket.new(AF_INET, SOCK_STREAM, 0) #生成新的套接字   
    20.         sockaddr = Socket.pack_sockaddr_in(theport, address)   
    21.         socket.connect(sockaddr)   
    22.         puts "Port:#{theport} is Opend!\n"  
    23.         socket.close   
    24.       rescue  
    25.       end  
    26.     end  
    27.   end  
    28.   threads.each {|thr| thr.join}   
    29. end  
  • 相关阅读:
    redis搭建集群
    redis搭建主从
    redis与python交互
    redis数据操作篇
    redis配置篇
    node 淘宝镜像
    java 深copy
    springmvc配置访问静态文件
    centos 启动 oracle
    List 分隔多次执行 且在同一个事物当中
  • 原文地址:https://www.cnblogs.com/djcsch2001/p/2664886.html
Copyright © 2011-2022 走看看