【发布时间】:2012-06-17 06:50:14
【问题描述】:
我正在使用 Ruby packetfu 库来构造和发送原始数据包。 我可以让它工作,但有些事情我认为我做错了。 (顺便说一句,ruby+packetfu 真的让整个原始数据包操作变得容易..)
这是我的代码: (MAC 地址被屏蔽了一点)
packet.eth_saddr = "XX:XX:88:XX:03:BD"
packet.eth_daddr = "XX:6D:57:AD:XX:A3"
packet.ip_header.ip_saddr="192.168.0.16"
packet.ip_header.ip_daddr="192.168.0.13"
当我调用 packet.to_w('eth0') 时,它会被传递。 正如你所看到的,是 MAC 地址让我摸不着头脑。 每次需要发送数据包时都必须弄清楚目标MAC地址真的很不方便...... 我已经测试过源 MAC 地址不是那么重要,没有它它仍然可以工作。 但是目的MAC地址是必须的(没有它,数据包不会出去)。
而且我不记得必须在 C 中使用原始套接字执行此操作... 如果我需要在将数据包放在网络上之前进行 ARP 处理,那会很糟糕,更糟糕的是,如果我将数据包发送到互联网,则需要进行 DNS 查询或其他操作......
我想我在这里遗漏了一些东西,比如我需要调用的单线......但在阅读了 packetfu 的代码和文档后我无法弄清楚......
有人吗?
【问题讨论】:
标签: ruby mac-address