我正在尝试使用此功能获取远程IP:
String remoteAddress = ((ServletRequestAttributes) RequestContextHolder
.currentRequestAttributes()).getRequest().getRemoteAddr();
我在控制器中调用它,但它返回0:0:0:0:0:0:0: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地址。