String hostAddress = InetAddress.getLocalHost().getHostAddress();
上記のコードは、Java 1.7 と 1.6 では動作が異なります。1.6 では、システム (10.4...) に割り当てられた正しい IP を返します。1.7 では、127.0.0.1 を返します。
この問題を回避するには、それを使用NetworkInterface.getNetworkInterfaces()
して取得する必要がありますInetAddress
。InetAddress
一度成功するまで、利用可能なすべてに接続しようとします。これはうまく機能しますが、Java 1.7 の動作が異なるのはなぜでしょうか?
どんな助けでも素晴らしいでしょう。