【问题标题】:how to determinate destination MAC address如何确定目的MAC地址
【发布时间】:2011-04-30 02:25:05
【问题描述】:

我的应用程序在 CentOS 5.5 上运行 我需要使用 libpcap API 发送原始数据包:

pcap_inject() or pcap_sendpacket()

到具体的IP地址 如何确定 MAC 地址属于特定目标?

【问题讨论】:

    标签: linux networking network-programming pcap libpcap


    【解决方案1】:

    一般来说,MAC 地址对于远程目标无关紧要。它们不可路由;我办公室的路由器不知道 Internet 上网卡的 MAC 地址。这就是IP地址的用途。您的意思是仅限本地吗?

    【讨论】:

    • 我需要发送一个原始以太网数据包,为此我需要填充包含源 MAC 和目标 MAC 的以太网标头。我正在寻找一种方法,如何以编程方式要求从 ARP 缓存中获取 MAC,如果我的 MAC 不存在执行 ARP 请求并返回结果。
    【解决方案2】:

    看起来你想要的是ioctl and SIOCGARP。那应该让您查询您的arp缓存。 我假设有问题的主机在您的本地网络上,或者您将获得的只是您的路由器。

    您也可以从 /proc/net/arp 读取,这似乎更容易。您需要首先返回一个 arp 请求,但无论您的工具是否执行此操作或某些第三方发出请求,您都将这样做。

    【讨论】:

    • 如何向不在 ARP 缓存表中的主机发出 ARP 请求?据我了解,我可以 ping 主机,但也许有一个用于 ARP 请求的正式 API?
    • 发送数据报可能是最简单的方法,肯定比一些 ioctl 类型的交互更容易。
    猜你喜欢
    • 1970-01-01
    • 2011-08-26
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2019-08-19
    • 1970-01-01
    • 1970-01-01
    • 2010-11-22
    相关资源
    最近更新 更多