2014-03-29 100 views
3

我正在寫一個Java應用程序必須能夠打開(WOL這是工作正常),並關閉本地網絡上的電腦。事情是我希望它能夠在只提供MAC地址的同時做到這一點。我需要的是一種通過僅提供其MAC地址來獲取pc(如果通電)的ip地址的方式。我看到很多關於做相反事情的線索,但這似乎是一個死衚衕。獲取IP地址的mac地址

預先感謝 Krolden

+1

我不知道你可以從純Java執行反向ARP。也許你可以使用[SNMP4J](http://www.snmp4j.org/),但我從來沒有嘗試過。 –

回答

2

這是不可能在一般情況下; IP地址和MAC地址具有多對多的關係(大多數接口有多個IP地址,一個IP地址可以綁定到多個MAC,但後者通常處於負載平衡的情況下)。

InARP協議在幀中繼上可用,但不適用於以太網。

由於多種原因,您可以得到最接近的 - 這是不可靠的 - 是在給予喚醒時間之後,廣播ping目標計算機所在的子網。然後您可以檢查本地計算機上的ARP緩存以查找匹配的條目。

+0

+1,我會補充說,使用MAC地址作爲計算機標識符本身充滿了問題。它可以在NIC更改時更改,也可以由用戶更改。 – EJP

+0

@EJP當涉及WOL時,不可避免。 – chrylis