#!/usr/bin/ruby -w #
# Ruby Multithreading Port Scanner #
# Version: 0.02 #
# (c)2006 Suninny's Rails Theme #
# http://blog.csdn.net/rails #
#####################################
require 'socket'
include Socket::Constants
ips = ['127.0.0.1','192.168.1.1']
ports = 1..1024
threads = []
def scan ip,po
begin
sock = Socket.new(AF_INET, SOCK_STREAM, 0)
sockaddr = Socket.pack_sockaddr_in(po, ip)
sock.connect(sockaddr)
puts "#{ip} : #{po} is Opend! "
sock.close
rescue
puts "#{ip} : #{po} is Closed ~~~ "
#puts $!.message + $@[0]
end
end
ports.each{|po|
sleep 0.02 #太快会被路由器BAN
ips.each{|ip|
threads << Thread.new {scan ip, po}
}
}
threads.each {|thr| thr.join}
-