如何接收具有与侦听接口不同的已知目标MAC的数据包UDP

问题描述:

我试图侦听将通过UDP发送的指定为已知MAC地址的特定发现数据包。该MAC地址将不会与我接收的接口的MAC地址相同。如何接收具有与侦听接口不同的已知目标MAC的数据包UDP

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

当我用tcpdump监听时,我可以看到数据包正在将它传送到设备。

它看起来像我可以在一个原始套接字(虽然还没有得到那个工作),但会有一种方法来只过滤目标MAC我想要的?

任何人都可以给我任何指导吗?

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

您需要在promiscuous mode中设置您的网络接口并使用Linux提供的数据包捕获接口。

看看libpcap,手册页是here

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

+0

在您提及的同一文档中还有一小部分相关信息:http://beej.us/guide/bgnet/output/html/singlepage/bgnet.html#indexId434909-212 – snap