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

Ton*_*ony 2 java ip spring servlets

我正在尝试使用此方法获取远程IP:

String remoteAddress = ((ServletRequestAttributes) RequestContextHolder
                .currentRequestAttributes()).getRequest().getRemoteAddr();
Run Code Online (Sandbox Code Playgroud)

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

nha*_*nha 6

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

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

编辑

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

在Servlet中获取真实的客户端IP

用Java获取"外部"IP地址

如何成功获取外部IP

使用Java获取当前计算机的IP地址

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