有没有办法通过Java发送ARP请求?

有没有办法通过Java发送ARP请求?,java,arp,Java,Arp,有没有在Java应用程序中发送ARP请求的方法?我知道ARP位于TCP和UDP下的一层,因此默认情况下Java无法发送ARP请求。我只是想知道是否有第三方Java库允许您发送ARP请求 为了捕获ARP回复,我知道我可以使用jpcap来解决这部分问题 感谢一个java应用程序总是可以执行一些外部命令,调用另一个工具来执行。我不知道你说的“标准java”是什么意思 基于谷歌搜索,在Java中似乎有一个。看 也有用于此目的的工具。不,不是在本机Java中(我猜这是出于安全考虑)。尽管它确实需要使用C+

有没有在Java应用程序中发送ARP请求的方法?我知道ARP位于TCP和UDP下的一层,因此默认情况下Java无法发送ARP请求。我只是想知道是否有第三方Java库允许您发送ARP请求

为了捕获ARP回复,我知道我可以使用jpcap来解决这部分问题


感谢

一个java应用程序总是可以执行一些外部命令,调用另一个工具来执行。我不知道你说的“标准java”是什么意思

基于谷歌搜索,在Java中似乎有一个。看


也有用于此目的的工具。

不,不是在本机Java中(我猜这是出于安全考虑)。尽管它确实需要使用C++/C本机代码库和JNI编程,但这是可以做到的

如您所述,Java标准库没有提供足够低级别的网络API来发送ARP请求


pcap4j
为libpcap/winpcap提供Java绑定,因此可用于发送ARP请求。有关图书馆的信息可以在他们的网站上找到。有关如何发送ARP请求,请参见示例。

您可以更明确地说“在java应用程序中”是什么意思吗。java应用程序总是可以执行一些外部命令,调用另一个工具来执行。java库与“标准java”有着几乎相同的可能性。很抱歉,我正在寻找一个API解决方案,而不是执行外部命令,如ARP。如果您能解释一下您真正想做的事情,我想您可能需要远程机器的MAC地址,这可能会有所帮助。只有当您在同一子网中时才可能这样做-如果您跨路由器工作,那么ARP将告诉您路由器的硬件地址,而不是机器的地址。这是网络的工作方式……它可能不完全是本机的,但有API,下面是它的链接:“出于安全考虑”只是猜测,除非您可以引用源代码。事实是它根本不存在。他们是ICMP,RARP。。。你的链接帮不了什么忙。