c++ - LibNet 读取 ARP 响应?

标签 c++ c networking arp libnet

是否可以使用 Libnet 读取 ARP 响应?我正在寻找一个跨平台库来读取用 C/C++ 编写的 ARP 套接字

最佳答案

libnet 是一个用于可移植数据包构造和注入(inject)的库。消费和解封装必须在别处完成。我建议 libtracelibpcap帮助开展这项业务。

libnet 主要用于构建和注入(inject) ARP 数据包。要了解这是如何完成的,请查看 some sample ARP code .此外,一旦数据包从有线/空中/文件中被捕获,libnet 可以帮助其可移植数据包 header 定义的 rolodex。在你的情况下,你想看看 struct libnet_arp_hdr .您可以通过执行以下操作将捕获的数据包转换为 ARP header :

    ...
    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:
            ...

关于c++ - LibNet 读取 ARP 响应?,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26078856/

相关文章:

c++ - 如何调整集合迭代器使其表现得像 map 迭代器?

c++ - 为什么哈希函数返回一个 size_t,它是如何使用的?

c++ - 使用 CUDA-aware MPI 的要求

c - C 中仅使用位运算符的符号函数

c - C 中的链表堆栈

networking - 我如何强制 tcp 丢弃缓冲区中最旧的数据段并接受 NS2 中应用程序写入的新数据

c++ - 为您的程序添加类似 C/C++ 的预处理能力

c++ - 为什么找到 f1 但找不到 f2?

c++ - ZeroMQ 是否允许多个服务器套接字?

linux - 如何在 RHEL 7.3 操作系统中配置多个网络接口(interface)(eth0、eth1)