Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/linux/23.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Linux 如何确定目标MAC地址_Linux_Networking_Network Programming_Pcap_Libpcap - Fatal编程技术网

Linux 如何确定目标MAC地址

Linux 如何确定目标MAC地址,linux,networking,network-programming,pcap,libpcap,Linux,Networking,Network Programming,Pcap,Libpcap,我的应用程序正在CentOS 5.5上运行 我需要使用libpcap API发送原始数据包: pcap_inject() or pcap_sendpacket() 到特定的IP地址 如何确定MAC地址属于特定目标?一般来说,MAC地址对于远程目标并不重要。它们是不可路由的;我办公室的路由器不知道互联网上网卡的MAC地址。这就是IP地址的用途。你是说只有本地的吗?看起来你想要的是本地的。这应该可以让你查询你的arp缓存。 我假设所讨论的主机在您的本地网络上,或者您将得到的只是您的路由器 您还可以

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

pcap_inject() or pcap_sendpacket()
到特定的IP地址
如何确定MAC地址属于特定目标?

一般来说,MAC地址对于远程目标并不重要。它们是不可路由的;我办公室的路由器不知道互联网上网卡的MAC地址。这就是IP地址的用途。你是说只有本地的吗?

看起来你想要的是本地的。这应该可以让你查询你的arp缓存。 我假设所讨论的主机在您的本地网络上,或者您将得到的只是您的路由器


您还可以从/proc/net/arp中读取,这似乎更容易。您需要首先返回一个arp请求,但无论是您的工具还是某个第三方发出请求,您都需要这样做

我需要发送一个原始以太网数据包,为了做到这一点,我需要填写包含源MAC和目标MAC的以太网报头。我正在寻找一种方法,如何通过编程要求从ARP缓存中获取MAC,如果我的MAC不在那里,则执行ARP请求并返回结果。如何为不在ARP缓存表中的主机发出ARP请求?据我所知,我可以ping主机,但可能有一个用于ARP请求的正式API?发送数据报可能是最简单的方法,当然比某些ioctl类型的交互更容易。