0

IPアドレスであることを知る必要があるプログラムがあります。しかし、私が使用するとき

InetAddress current_addr = addresses.nextElement();

戻る

127.0.1.1

これはあまり役に立ちません。Java から非ローカル IP アドレスを取得するにはどうすればよいですか?

4

1 に答える 1

1

使用すると何が得られますか:

InetAddress IP = InetAddress.getLocalHost();
String ipAddress  = IP.getHostAddress();

複数のネットワーク インターフェイスがない場合は、理想的には IP アドレスを提供する必要があります。

ローカルでテストしたところ、マシンの適切なIPアドレスが得られました

192.168.2.10

複数のネットワーク インターフェイスがある場合は、NetworkInterface クラスの使用を試すことができます。サンプルは次のとおりです。

  Enumeration<NetworkInterface> n = NetworkInterface.getNetworkInterfaces();
            for (; n.hasMoreElements();)
            {
                    NetworkInterface e = n.nextElement();
                    System.out.println("Interface: " + e.getName());
                    Enumeration<InetAddress> a = e.getInetAddresses();
                    for (; a.hasMoreElements();)
                    {
                            InetAddress addr = a.nextElement();
                            System.out.println("  " + addr.getHostAddress());
                    }
            }

ソースは関連記事から取得: java InetAddress.getLocalHost(); 127.0.0.1 を返します ... REAL IP を取得するには?

于 2013-08-16T17:03:29.993 に答える