`
jsntghf
  • 浏览: 2533578 次
  • 性别: Icon_minigender_1
  • 来自: 苏州
社区版块
存档分类
最新评论

Ruby利用socket扫描端口

阅读更多

不常用,可以用于学习。

 

  require 'socket'
  include Socket::Constants

  def scan_port
    if $*[0] == nil or $*[1] == nil or $*[2] == nil
      abort "用法示例:ruby #$0 ip地址 开始端口 结束端口 EX:如ruby #$0 localhost 1 1024"
    end
    time = Time.now
    scan $*[0], $*[1], $*[2]
    puts "\n共耗时:#{Time.now - time}秒"
  end

  private
  def scan(address, start_port, end_port)
    threads = []
    for port in start_port..end_port
      threads << Thread.new(port) do |theport|
        begin
          socket = Socket.new(AF_INET, SOCK_STREAM, 0) #生成新的套接字
          sockaddr = Socket.pack_sockaddr_in(theport, address)
          socket.connect(sockaddr)
          puts "Port:#{theport} is Opend!\n"
          socket.close
        rescue
        end
      end
    end
    threads.each {|thr| thr.join}
  end

 

输入如下命令即可:

 

ruby script/server localhost 1 500

 

示例输出:

 

Port:80 is Opend!
Port:88 is Opend!
Port:135 is Opend!
Port:443 is Opend!
Port:445 is Opend!

共耗时:0.782秒

 

分享到:
评论
1 楼 Cresting 2009-12-17  
看不太懂,$*[0],$*[1],$*[1],#$0是什么东西?
ruby script/server localhost 1 500可以运行出这个结果么? 楼主能不能详细说说?

相关推荐

    web-socket-ruby-master.zip_ruby socket_websock

    本文将深入探讨在Ruby中使用WebSocket的技术,包括`ruby_socket`和`websock`相关的知识点。 首先,让我们理解`ruby_socket`。在Ruby中,`socket`库提供了创建和操作网络套接字的能力,它是网络通信的基础。套接字是...

    ruby-nmap, Nmap探测工具和安全/端口扫描器的Rubyful接口.zip

    ruby-nmap, Nmap探测工具和安全/端口扫描器的Rubyful接口 ruby源代码问题文档文档[Email] ( mailto: 后端,gmail.com) 处的mod3 描述to nmap,探测工具和安全/端口扫描器的ruby 界面。特性为运行nmap提供一个 ruby ...

    ruby利用pop3下载附件

    ruby利用pop3下载附件

    简单的Ruby中的Socket编程教程

    Ruby语言中通过其标准库提供了对Socket编程的支持,使得开发者可以不必深入了解网络协议细节,就能在Ruby上构建丰富的网络应用。 Ruby的Socket编程模型大致可以分为两个层面,分别是底层的网络接口和高层的网络协议...

    Ruby中的Socket编程简单入门

    主要介绍了Ruby中的Socket编程简单入门,是Ruby网络编程学习中的基础知识,需要的朋友可以参考下

    重构--Ruby 完整扫描清晰版--中文

    首先,文档的标题提到了“重构--Ruby完整扫描清晰版--中文”。这意味着文档可能是对软件重构领域权威书籍的翻译或解读版本,其中包含了对Ruby语言重构的具体讨论。重构,作为提升现有代码质量的一种实践,其目的是在...

    async_tcpsocket:Ruby 的异步 TCP 套接字

    #AsyncTCPSocket ##Ruby 异步 TCP 套接字实现 ###Example require 'async_tcpsocket'socket = AsyncTCPSocket . newsocket . once :error , Proc . new { | err |STDERR . puts "Error: #{ err } "socket . close}...

    socket2:Ruby 中的第 2 层原始数据包操作

    添加到允许在 Ruby 中进行第 2 层原始数据包操作的本机 Socket 类(适用于 Linux) Ruby 仅原生支持网络 (IP) 层的原始套接字访问。 如果您希望系统代表您执行诸如地址解析之类的服务,这很好,但是那些想要完全...

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby Ruby Ruby Ruby Ruby Ruby

    Ruby基础教程(第5版)1

    此外,Ruby的面向对象特性是其一大亮点,书中详细介绍了如何创建和使用类,以及如何利用Ruby的鸭子类型实现灵活的编程。 高级主题,如正则表达式,也在书中有所涉及,这些内容对提升开发者解决复杂问题的能力至关...

    rubyslim:Ruby的超薄端口

    Ruby修身该软件包提供了一个实现 的SliM服务器。 它允许您用Ruby编写测试装置,并从FitNesse测试中调用它们。灯具名称Rubyslim关于如何命名模块和类以及如何在FitNesse Wiki中导入和使用它们非常特别: 灯具文件夹...

    Ruby完全自学手册].邓蔚.扫描版

    Ruby完全自学手册].邓蔚.扫描版 Ruby完全自学手册].邓蔚.扫描版

    Ruby-TensorStream用Ruby重新实现TensorFlow

    它的核心目标是让Ruby程序员能够利用TensorFlow的强大功能,同时保持Ruby语言的优雅和简洁。这个项目在设计时特别注重与TensorFlow的相似性,以便于熟悉TensorFlow的开发者能快速上手。 **1. 纯Ruby实现** Ruby-...

    ruby扫描整理电子版

    在Ruby编程语言中,处理数值是一项基础且至关重要的任务。Ruby支持整数(Fixnum)和浮点数(Float)两种类型的数值。整数可以直接输入,如`1`和`100`,浮点数则表示带有小数部分的数值,如`3.1415`。每个数值都是一个...

    Programming Ruby中文版第二版[高清扫描版][带书签]和Programming.Ruby-2nd[高清文字版][带书签].pdf

    《Programming Ruby》中文版第二版是一本专注于Ruby编程语言的经典教程。这本书的两个版本——高清扫描版和高清文字版,都是为了便于读者学习和查阅,其中都带有书签功能,帮助读者快速定位到相关内容。 Ruby是一种...

    ruby DBI ruby DBI ruby DBI

    ruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ruby DBIruby DBI ruby DBI ...

    Ruby-rubyinstall安装RubyJRubyRubiniusMagLevorMRuby

    2. JRuby:JRuby是Ruby的一个Java实现,它可以在Java平台上运行,并且能够利用Java的性能和生态系统。JRuby的最大优点是与Java库的无缝集成,以及在多线程环境下的高效执行。 3. Rubinius:Rubinius是一个用Ruby...

    [Ruby完全自学手册].邓蔚.扫描版

    《Ruby完全自学手册》是由邓蔚编著的一本面向初学者和进阶者的编程书籍,主要专注于Ruby语言的学习。Ruby是一种动态、面向对象的编程语言,以其简洁、优雅的语法和强大的元编程能力而受到开发者喜爱。这本书是学习...

Global site tag (gtag.js) - Google Analytics