如何从C中的包头数据中获取参与ARP的机器的MAC和IP地址?

如何从C中的包头数据中获取参与ARP的机器的MAC和IP地址?,c,packet-capture,arp,C,Packet Capture,Arp,谢谢你的阅读 我正在做一项家庭作业,其中我需要根据捕获的数据包确定远程机器的MAC和IP地址。使用pcap_循环函数,我需要找到相对于指向数据包开头的指针(在回调函数中以u_字符*形式给出)的适当结构(提供此信息的ARP头)的位置 我还没能在网上找到关于如何获取结构的信息,比如以太arp,它有与数据包相关的地址。如果你能给我指出正确的方向,那将是非常有帮助的——正如我提到的,这是家庭作业,所以我不是在寻找一个完整的答案 再次感谢你的帮助 这篇文章“http://en.wikipedia.org/

谢谢你的阅读

我正在做一项家庭作业,其中我需要根据捕获的数据包确定远程机器的MAC和IP地址。使用pcap_循环函数,我需要找到相对于指向数据包开头的指针(在回调函数中以u_字符*形式给出)的适当结构(提供此信息的ARP头)的位置

我还没能在网上找到关于如何获取结构的信息,比如以太arp,它有与数据包相关的地址。如果你能给我指出正确的方向,那将是非常有帮助的——正如我提到的,这是家庭作业,所以我不是在寻找一个完整的答案

再次感谢你的帮助

这篇文章“http://en.wikipedia.org/wiki/Address_Resolution_Protocol“告诉ARP消息的布局。您不需要结构,只需使用偏移量。

什么平台(Windows或Linux)?如果是Linux,那么libdnet库()对于这类事情非常有用。它为eth_hdr、ip_hdr和arp_hdr定义了结构。