如何在Ruby中使用原始套接字?

如何在Ruby中使用原始套接字?,ruby,raw-sockets,Ruby,Raw Sockets,我正在尝试使用Ruby创建一个原始套接字 问题是,这里没有所谓的“原始套接字”,另一方面,套接字类本身也没有完整的文档记录 有没有人在Ruby中有这种套接字的代码示例,或者有这种套接字的文档 顺便说一句,我已经知道如何使用TCPSocket和TCPServer类,我需要的是一个原始套接字。谷歌提供了以下结果: 简短版本: require 'socket' rsock = Socket.open(Socket::PF_INET, Socket::SOCK_RAW, Socket::IPPROTO

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

问题是,这里没有所谓的“原始套接字”,另一方面,套接字类本身也没有完整的文档记录

有没有人在Ruby中有这种套接字的代码示例,或者有这种套接字的文档


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

谷歌提供了以下结果:

简短版本:

require 'socket'

rsock = Socket.open(Socket::PF_INET, Socket::SOCK_RAW, Socket::IPPROTO_RAW)

rsock.send(string, flags)

rsock.recv(1024)
有关各种套接字类的更多文档:


(整个原始套接字在unices上非常糟糕,因为它通常需要根访问。我没有测试这段代码。如果不使用IPSocket,您可能需要自己构造整个数据包)

看看racket gem()。自2009年发布最后一个版本以来,它似乎有点过时了,但它也用于metasploit框架。

看看。Metasploit项目对其进行了很好的维护和使用。

Thanx dude。。。。。但我已经看过这个了,它是无用的废话,而且它充满了错误。鹤嘴锄第三版是最有用的东西,再次超过了X。它确实起作用,有点。问题是你在谷歌上得到的示例代码有一个./ip include。他们没有告诉你的是,这是一个常见的模板bitstruct类。而且,如果它得到的数据少于1024个,它就会继续阻塞。仅仅说它是无用的垃圾可能太过分了。你从哪里得到ruby论坛示例中使用的ip类?自述文件()中的第一件事是关于libpcap的,你真的想编写非诊断/测试应用程序来具有pcap依赖性吗?