2

これを使用してリモートIPを取得しようとしています:

String remoteAddress = ((ServletRequestAttributes) RequestContextHolder
                .currentRequestAttributes()).getRequest().getRemoteAddr();

コントローラーで呼び出しますが、返されます0:0:0:0:0:0:0:1。どうしたの?

4

1 に答える 1

6

0:0:0:0:0:0:0:1IPv6 のループバック アドレスです。127.0.0.1これは IPv4に相当します。

マシンを 1 台しか使用していない場合、これはごく普通のことのように思えます。それ以外の場合は、詳細を教えてください。

編集

外部 (パブリック) IP を取得しようとしている場合は、次の SO 投稿を参照してください。

サーブレットで実際のクライアント IP を取得する

Java で「外部」IP アドレスを取得する

外部 IP を正常に取得する方法

Java を使用して現在のマシンの IP アドレスを取得する

要するに、使えますrequest.getRemoteAddr()。ただし、同じネットワーク上にいる場合、パブリック IP アドレスは返されません。

于 2013-09-22T14:58:04.220 に答える