无法在ServletRequest中获取客户端的IP

时间:2013-09-22 14:52:42

标签: java spring servlets ip

我正在尝试使用此功能获取远程IP:

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

我在控制器中调用它,但它返回0:0:0:0:0:0:0:1。怎么了?

1 个答案:

答案 0 :(得分:6)

0:0:0:0:0:0:0:1是IPv6中的环回地址。 它相当于IPv4中的127.0.0.1

如果您只使用一台机器,这对我来说似乎很正常。否则,请你提供更多细节吗?

修改

如果您正在尝试获取外部(公共)IP,那么您可以查看这些SO帖子:

Get real client IP in a Servlet

Getting the 'external' IP address in Java

How to get external IP successfully

Getting the IP address of the current machine using Java

简而言之,您可以使用request.getRemoteAddr()。但如果您在同一个网络上,它将不会返回您的公共IP地址。