LinuxでのLocalhostは/etc/hostsの一番先頭のエントリ
情報ソース:http://www.beasys.co.jp/cs/newsletter/eSupportNews_072005.htm
getAllByName() で返される IP アドレスの順序については JVM の仕様に規定されていないため
JVM のベンダの実装に依存いたします。多くの Unix の JVM の実装では HOSTS
ファイルのエントリの順で返されるため ・・・
ビンゴー!と思わずつぶやいてしまいました。
ある客先で、UDPのソースIPが実IPアドレスと違って、困って探していたら見つけましたよ。
で、実験。(OSはRHEL4 update2)
/etc/hosts 127.0.0.1 localhost.localdomain localhost 172.24.126.2 hoge 172.24.126.3 hogehoge
Linuxマシンの実IPは172.24.126.3にしておく。
以下の実験コードをコンパイルして、実行した。
import java.net.InetAddress; import java.net.UnknownHostException; public class InetAddrTest { public static void main(String[] args) { try { System.out.println(InetAddress.getLocalHost().toString()); } catch (UnknownHostException e) { e.printStackTrace(); } } }
すると、
hoge/172.24.126.2
と表示されました。
知らなかったよ〜orz
ということで、メモ残しました。誰かのお役に立てればイイですが。
(追記)UDPで送る際にはHostsの内容を見て居ないようですorz..うれしくてメモしたのに、別の問題みたいで残念。。。。