【问题标题】:How can i use RAW Sockets in Ruby?如何在 Ruby 中使用 RAW 套接字?
【发布时间】:2009-08-28 01:09:06
【问题描述】:

我正在尝试使用 Ruby 创建一个原始套接字。

问题是,那里没有任何称为“原始套接字”的东西,另一方面,Socket 类本身没有完整记录。

有没有人有一些 Ruby 中这种套接字的代码示例,或者可能有一些文档?

顺便说一句,我已经知道如何使用 TCPSocket 和 TCPServer 类,而我尤其需要一个原始套接字。

【问题讨论】:

    标签: ruby raw-sockets


    【解决方案1】:

    Google 显示以下结果:http://www.ruby-forum.com/topic/90408

    短版:

    require 'socket'
    
    rsock = Socket.open(Socket::PF_INET, Socket::SOCK_RAW, Socket::IPPROTO_RAW)
    
    rsock.send(string, flags)
    
    rsock.recv(1024)
    

    有关各种 Socket 类的更多文档:http://www.rubycentral.com/pickaxe/lib_network.html

    (整个原始套接字在 unices 上相当讨厌,因为它通常需要 root 访问权限。我没有测试此代码。如果您不使用 IPSocket,您可能需要自己构建整个数据包)

    【讨论】:

    • 谢谢老兄.....但是我已经看过这个“ruby-forum.com/topic/90408”了,这是无用的废话,而且充满了错误。 Pickaxe 第 3 版是最有用的东西,再次感谢。
    • 它确实有效,有点。问题是你在谷歌上得到的示例代码有一个 ./ip 包含。他们没有告诉你的是它是一个常见的模板 bitstruct 类。此外,如果它获得的数据少于 1024,它就坐在那里并继续阻塞。只是说它是无用的废话可能是过分的。
    • 你从哪里获得 ruby​​-forum 示例中使用的 ip 类?
    【解决方案2】:

    看看球拍宝石 (https://rubygems.org/gems/racket)。自上一个版本于 2009 年发布以来,它似乎有点过时了,但它也用于 metasploit 框架。

    【讨论】:

      【解决方案3】:

      看看PacketFu。 Metasploit 项目维护和使用的非常好。

      【讨论】:

      猜你喜欢
      • 1970-01-01
      • 1970-01-01
      • 2020-02-22
      • 2013-01-24
      • 1970-01-01
      • 2013-01-28
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      相关资源
      最近更新 更多