是否可以使用Libnet读取ARP响应?我正在专门寻找一个跨平台库来读取用C/C++编写的ARP套接字
libnet
是一个用于可移植数据包构建和注入的库。消费和解封必须在其他地方进行。我建议libtrace
或libpcap
来帮助这项业务。
如果您想要构建和注入ARP数据包,libnet
主要是有用的。要了解如何做到这一点,请查看一些示例ARP代码。此外,一旦数据包从wire/air/文件中被捕获,libnet
就可以帮助其便携式数据包报头定义的rolodex。在您的情况下,您需要查看struct libnet_arp_hdr
。您可以通过执行以下操作将捕获的数据包投射到ARP标头中:
...
struct libnet_arp_hdr *arp_h;
buf = capturepacket();
...
arp_h = (struct libnet_arp_hdr *)buf + LIBNET_ETH_H;
...
switch (arp_h->ar_op)
{
case ARPOP_REQUEST:
...