#!/usr/bin/ruby -w
创新互联坚持“要么做到,要么别承诺”的工作理念,服务领域包括:网站设计、成都网站建设、企业官网、英文网站、手机端网站、网站推广等服务,满足客户于互联网时代的永登网站设计、移动媒体设计的需求,帮助企业找到有效的互联网解决方案。努力成为您成熟可靠的网络建设合作伙伴!
=begin
quite simple connect scanner in ruby
Shows open (reliable), close and filtered. But the reliablity
of the last two states depends of course on firewalling and the timeout
interval you can set down. Uncomment or comment states you want or don't
want to get printed on the screen.
*supports scanning mutiple hosts/IPs (like www.heise.de,www.gulli.com)
*supports multiple ports(like 12,45,53,165),ranges(like 20..85) or one single
port(like 80)
*support a ports file like http://insecure.org/nmap/data/nmap-services (just
clean it with | grep /tcp ..)
ZGlnaXRhbGJ5dGU=
=end
require 'socket'
require 'timeout'
class Scanner
def initialize
@hosts,@ports = Array($*)
end
def portarrange
case @ports
when /^.+[..]/
@ports = @ports.split("..")
@ports = @ports[0].to_i..@ports[1].to_i
when /^.+[,]/
@ports = @ports.split(",")
else
@ports = Array(@ports)
end
end
def hostarrange
case @hosts
when /^.+[,]/
@hosts = @hosts.split(",")
else
@hosts = Array(@hosts)
end
end
def output(state,port)
printed = false
portsfile = File.new("ports", "r")
scanpat = "^.+ #{port}/tcp"
begin
portsfile.each_line do |line|
if line =~ Regexp.new(scanpat)
puts "#{state} : #{line}"
printed = true
end
end
puts "#{state} : #{port}" if printed == false
ensure
portsfile.close
end
end
def scanning(hosts,ports)
hosts.each do |host|
begin
puts "scanning #{host}:"
ports.each do |port|
begin
Timeout::timeout(10){TCPSocket.new(host, port)}
rescue Timeout::Error
output("filtered",port)
rescue
# output("closed",port)
else
output("open",port)
end
end
end
end
end
end
##################### code start #####################
puts "no arguments past,correct usage:\nruby #{$0} [hosts] [ports]\n" if
!ARGV[1]
my_scanner = Scanner.new
hosts = my_scanner.hostarrange
ports = my_scanner.portarrange
my_scanner.scanning(hosts,ports)
##################### eof #####################
网站题目:Ruby实现端口扫描
链接地址:http://www.shufengxianlan.com/qtweb/news13/73163.html
网站建设、网络推广公司-创新互联,是专注品牌与效果的网站制作,网络营销seo公司;服务项目有等
声明:本网站发布的内容(图片、视频和文字)以用户投稿、用户转载内容为主,如果涉及侵权请尽快告知,我们将会在第一时间删除。文章观点不代表本网站立场,如需处理请联系客服。电话:028-86922220;邮箱:631063699@qq.com。内容未经允许不得转载,或转载时需注明来源: 创新互联