2011-01-29 88 views
0

我有這樣的片段在Java中:網絡接口 - VB.Net/Java

final InetAddress address = InetAddress.getLocalHost(); 
final NetworkInterface ni = NetworkInterface.getByInetAddress(address); 
key = new String(ni.getHardwareAddress()); 

「鑰匙」,在我的電腦的回報:

▲╔UiÎ

什麼將相當於在VB.Net中獲得相同的輸出?我嘗試了'MAC地址'和'物理地址',但它們與Java中的輸出完全不同?

回答

1

我無法幫助你與VB,但也許我可以清除一些東西了。

以我的經驗,InetAddress.getLocalHost()是無用的。它根據操作系統,Java版本,連接到的路由器的品牌,月亮的階段等等,給出不同的結果。遠離它。如果您想要回送IP地址,只需對它進行硬編碼:127.0.0.1。如果您需要計算機上網絡接口的地址,請致電NetworkInterface.getInterfaces()並遍歷它們。

MAC地址是以太網接口的唯一ID。通常情況下,你根本不必擔心它,除非你對網絡硬件做了一些奇怪的事情。它與IP地址無關。

最後:如果您想確定其他人可以用來連接到您的IP地址,請注意並非如此簡單。一臺電腦可能有多個網絡接口 - 你怎麼知道選擇哪一個?如果你在路由器後面(因爲現在大多數機器都是這樣),那麼計算機被分配一個「本地」地址,這對本地網絡以外的任何人都是無用的。