如何在Ruby中将以太网数据包发送到网络中?

如何在Ruby中将以太网数据包发送到网络中?

问题描述:

我安装了packetfu gem,并看到了示例和测试(部分),但我仍然不明白如何发送帧到网络中。我只是看到示例操纵以太网帧并将其写入pcap文件,这不是我想要的。如何在Ruby中将以太网数据包发送到网络中?

我想只使用以太网方法和一种将以太网帧发送到网络的方法。我喜欢自己实现流动的协议细节。

当然,如果Ruby没有为801.x协议获得库或gem,我将非常乐意听到您的建议。

在此先感谢。

那么,标签的提示激发了我的兴趣,我搜索了Ruby的raw-ethernet,发现这个http://blog.mudynamics.com/2007/12/04/ruby-tuntap-interface/我认为这很鼓舞人心!

我从来没有使用packetfu,但我发现Ruby的socket interface非常简单易用。最重要的是,没有宝石可以安装或保持更新,因为它是一个标准库,并且您只需要使用它就可以满足需要。如果你需要的只是读取/注入以太网帧,至少在Linux上,它是fairly simple

+0

我认为这应该是简单和容易的创建一个以太网帧并发送它。我已经阅读了一些有关在Ruby中的套接字的文档,但我想用套接字我最好只发送原始的二进制数据?我没有看到它有一个方法来设置目标MAC地址或源MAC地址 – 2012-01-31 15:45:58

+0

从[此线程](http://*.com/questions/1659375/mac-ruby-cant-access-ioctl-of-socket-如何修复)它看起来像你可以通过ioctl访问它,但不是在每个平台上。 [另见](http://ruby-doc.org/core-1.9.3/IO.html#method-i-ioctl) – Dmitri 2012-01-31 22:47:21