5

以下のコードが 127.0.0.1 ではなく 0.0.9.229 を出力する理由がわかりません。誰か教えてくれませんか?

String ha = InetAddress.getLocalHost().getHostAddress();
System.out.println(ha);

UPD: Ubuntu で実行されているコード

/etc/ホスト

127.0.0.1       localhost
127.0.1.1       2533
4

3 に答える 3

10

InetAddress.getLocalHost()ほとんどの人が考えていることをしません。実際には、マシンのホスト名と、そのホスト名に関連付けられた IP アドレスが返されます。これは、外の世界に接続するために使用されるアドレスである可能性があります。そうではないかもしれません。システムの構成方法によって異なります。

私のwindowsboxでは、マシン名と外部IPアドレスを取得します。私のLinuxボックスでは、ホスト名と127.0.0.1を返します。これは、/ etc/hostsで設定しているためです

于 2013-08-28T13:13:04.543 に答える