Warning: file_get_contents(/data/phpspider/zhask/data//catemap/3/sockets/2.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_Sockets_Networking_Arp - Fatal编程技术网

Linux 如何向套接字提供目标MAC地址

Linux 如何向套接字提供目标MAC地址,linux,sockets,networking,arp,Linux,Sockets,Networking,Arp,我的linux主机上有一个应用程序,它通过UDP通过10G以太网与另一台机器通信。另一端的机器不响应ARP请求。我可以通过其他方式获得它的MAC地址(一个不同的接口,等等) 是否有一种方法可以通过编程方式将此信息输入到arp表中,并显示特权状态 我知道我可以在命令行问题上“sudoarp-s1.2.3.4aa:BB:CC:DD:EE:FF”每次我打开它的电源 我知道我可以将“1.2.3.4 AA:BB:CC:DD:EE:FF”添加到etc/以太中 我知道作为一个特权usr/流程,我可以向SIOC

我的linux主机上有一个应用程序,它通过UDP通过10G以太网与另一台机器通信。另一端的机器不响应ARP请求。我可以通过其他方式获得它的MAC地址(一个不同的接口,等等)

是否有一种方法可以通过编程方式将此信息输入到arp表中,并显示特权状态

我知道我可以在命令行问题上“sudoarp-s1.2.3.4aa:BB:CC:DD:EE:FF”每次我打开它的电源

我知道我可以将“1.2.3.4 AA:BB:CC:DD:EE:FF”添加到etc/以太中

我知道作为一个特权usr/流程,我可以向SIOCSARP发出ioctl

所有这些机制都需要sudo/root访问权限。我读了一些关于授予应用程序“CAP\u NET\u ADMIN”权限的文章


我正在寻找这个功能,这样最终用户就不需要执行上述任何操作。看起来,如果我,w/out sudo/root,可以打开一个套接字来确定是否需要此网络信息,那么应该有一种方法,w/out sudo/root,可以提供此功能。

不,您不能将ARP信息编辑为非root。这是有意义的,反之亦然恶意攻击者将能够修改ARP表并完全中断网络通信并危害安全


您的问题的解决方案是修复您的网络配置。

不,您不能将ARP信息编辑为非根用户。这是有意义的,否则恶意攻击者将能够修改ARP表并完全中断网络通信并危害安全


您的问题的解决方案是修复您的网络配置。

是的,功能性ARP和ICMP会很好,但我无法控制另一端的机器。它是由第三方提供的。在我的问题中,我考虑了更多,我是否可以发送一个数据包来填充MAC信息,但事后来看,这是一个问题也需要根,因为手动将MAC放入数据包的唯一方法是使用原始套接字。是的,功能性ARP和ICMP会很好,但我无法控制另一端的机器。它由第三方提供。在我的问题中,我考虑了更多,是否有一个数据包可以发送,从而导致MAC信息被填充d、 但事后看来,这也需要root,因为手动将MAC放入数据包的唯一方法是w/a原始套接字。