【问题标题】:C send broadcast. Need modify IP source fieldC 发送广播。需要修改IP源字段
【发布时间】:2012-11-27 03:43:23
【问题描述】:

我需要做下一个。

我正在为我的最终学位项目做一些在 openwrt 固件中运行的 C 嗅探器。我已经做了所有事情,但我还有一件事我不知道如何开始。

我有下一个私网:http://img443.imageshack.us/img443/999/sinttulo2de.png

我的嗅探器所做的是嗅探通过我的路由器运行的所有数据包,当其中一个数据包到达我连接的任何 PC 时,如果该 PC 处于睡眠状态,它将唤醒它。好像它是局域网上的自动唤醒一样。

所以,我有一个问题。假设 PC3 向 PC4 发送一个数据包,来自交换机的 arp 表知道 PC4 在哪里,并将该数据包引导到 PC4 网关。如果发生这种情况,我的嗅探器将永远看不到该数据包,因为嗅探器在路由器的处理器中运行,并且只能看到通过它的数据包。

我需要做下一个。当 PC4 进入睡眠状态并且我的嗅探器检测到它(已经这样做了)时,嗅探器必须发送带有来自 PC4 的 IP 地址源的虚假广播,以欺骗交换机并使其认为 PC4 现在连接到网关路由器。因此,从 PC3 发送到 PC4 的下一个数据包将转到路由器而不是 PC4,我的嗅探器会看到它。

我希望你能理解我。对不起我的英语。

【问题讨论】:

  • 在我看来,如果它没有经过路由器,就不要嗅探它。

标签: c ip-address send broadcast


【解决方案1】:

您要查找的内容称为“Gratuitous ARP”。

我找到了一个c实现here

但是,在我看来,如果它没有通过您的路由器,请不要嗅探它。

【讨论】:

  • 我不同意这种观点——在这种情况下,路由器只是一个透明的网络唤醒提供商。也可以是单独的设备。它需要欺骗最初被寻址的设备的 ARP。
  • 嗨!谢谢,我会看看免费的ARP。我还被告知要从原始套接字创建一个广播数据包。但是任何想法,所以我只有你的答案。谢谢你。如果我能做点什么,我会在这里写信。
  • 我真的需要闻一闻,因为 Jonas Wielicki 说的原因。
猜你喜欢
  • 2019-03-08
  • 2016-07-26
  • 1970-01-01
  • 1970-01-01
  • 2014-08-26
  • 2021-07-04
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
相关资源
最近更新 更多