2013-02-01 132 views
8

有沒有辦法在Java應用程序內發送ARP請求?我知道ARP在TCP和UDP下面,因此默認情況下Java不能發送ARP請求。我只是想知道是否有任何第三方Java庫可以讓你發送ARP請求。有沒有辦法通過Java發送ARP請求?

爲了捕獲ARP回覆,我知道我可以使用jpcap,以便部分解決。

感謝

+0

你可以更明確你的意思是「在Java應用程序內」。一個Java應用程序總是可以執行一些外部命令,調用另一個工具來執行它。 java庫與「標準java」幾乎具有相同的可能性。 – eis

+1

我很抱歉,我正在尋找一個API解決方案,而不是執行諸如arping之類的外部命令。 – beyonddc

+0

見http://stackoverflow.com/questions/1238963/query-arp-cache-to-get-mac-id – maerics

回答

1

Java應用程序可以隨時執行一些外部命令,調用另一個工具來做到這一點。雖然我不確定「標準java」是什麼意思。

基於谷歌搜索,似乎有arpingkraken pcap這是在Java中。見about Kraken

還有jpcap以及用於此目的。

-1

不,不是在本地Java(我猜這是由於安全考慮)。儘管它需要使用C++/C本機代碼庫和JNI編程,但它可以完成。 https://forums.oracle.com/forums/thread.jspa?threadID=1690617

+0

它可能不完全是原生的,但有API,這裏是它的鏈接:http://yuba.stanford.edu/vns/clack/instructor/rip.html#apis –

+0

'Due到安全問題「只是猜測,除非你可以引用一個來源。事實是,它只是不存在。 Netiher是ICMP,RARP,...你的鏈接沒有太大的幫助。 – EJP

1

如您所述,Java標準庫不提供足夠低的網絡API來發送ARP請求。

pcap4j爲libpcap/winpcap提供Java綁定,因此可用於發送ARP請求。有關圖書館的信息可以在他們的homepage找到。請參閱this示例瞭解如何發送ARP請求。

相關問題