【问题标题】:How to receive a packet UDP with a known destination MAC different to that of the listening interface如何接收具有与侦听接口不同的已知目标 MAC 的数据包 UDP
【发布时间】:2011-08-31 04:34:54
【问题描述】:

我正在尝试侦听将通过 UDP 发送到已知 MAC 地址的特定发现数据包。此 MAC 地址不会与我正在接收的接口的 MAC 地址相同。

我尝试过 Beej 的 UDP listener,但它只接收具有正确 MAC 的数据包。

当我使用 tcpdump 收听时,我可以看到数据包正在发送到设备。

看起来我可以在原始套接字上接收(虽然还没有工作)但是有没有办法只过滤我想要的目标 MAC?

任何人都可以在这方面给我任何指导吗?

【问题讨论】:

    标签: c linux sockets networking


    【解决方案1】:

    您的接口通常不会接收未发送到其自身地址的数据包。它只是忽略它们。

    你需要在promiscuous mode中设置你的网络接口,并使用Linux提供的抓包接口。

    看看libpcap,手册页是here

    这与 tcpdump 使用的机制相同。它是一个为内核中的数据包捕获机制提供接口和过滤器的库。

    【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2015-09-29
    • 1970-01-01
    • 2016-04-29
    • 1970-01-01
    • 1970-01-01
    • 2012-04-15
    • 2011-09-17
    • 2013-02-03
    相关资源
    最近更新 更多