【问题标题】:LibNet read ARP response?LibNet 读取 ARP 响应?
【发布时间】:2014-09-27 20:20:36
【问题描述】:
是否可以使用 Libnet 读取 ARP 响应?专门找一个跨平台的库来读取C/C++写的ARP套接字 /。
【问题讨论】:
标签:
c++
c
networking
arp
libnet
【解决方案1】:
libnet 是一个用于便携式数据包构建和注入的库。消费和解封装必须在别处完成。我建议libtrace 或libpcap 帮助处理该业务。
libnet 主要用于构建和注入 ARP 数据包。要了解这是如何完成的,请查看 some sample ARP code。此外,一旦从有线/空气/文件中捕获数据包,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:
...