SendARP相当于Linux

Windows API包含一个非常方便的函数,称为SendARP 。 你可以给它一些源IP和一个目的IP,它给你带有目的IP的客户的MAC地址。 而且,这个function可以被Windows上的标准用户使用,即不需要pipe理员权限。

Linux API有一个和SendARP一样简单的function吗?

我已经想过要执行像ping -c 1 xxx.xxx.xxx.xxx这样的调用,然后parsingarp -a -v的输出(当然,在用popen包装这些命令的时候),但是这看起来相当不方便,更不用说了调用外部程序可能引起的安全问题。 不幸的是,Wine也缺lessSendARP,它被标记为iphlpapi中的一个存根 。

请注意,答案也应该以普通用户的身份执行,即没有root权限(否则我可以创build一个原始套接字并自己构造ARP数据包,但这需要可执行文件具有CAP_NET_RAWfunction,这个function需要分配给它, 在这里解释)。