Linux 套接字和 ARP 欺骗

Linux Socket and ARP spoofing

我一直在本地 LAN 上试验 ARP 欺骗。 现在,我想尝试用 C 编写一个简单的嗅探器,但我有一些问题:

  1. 如果 ARP 欺骗成功,我的 NIC 将接收并且不会丢弃具有我的 MAC 地址(第 2 层)但不是我的 DST IP(第 3 层)的数据包。我可以使用什么样的套接字来接收这些数据包?我认为是某种 RAW 套接字,但我们将不胜感激。
  2. 有没有办法(抛出 C)将我的 NIC 置于混杂模式,以强制它接收具有不同 MAC 的数据包?

经过一些调查,我认为最好的方法是使用 libcap http://man7.org/linux/man-pages/man3/libcap.3.html,它带有很好的调用例程。