【发布时间】:2014-01-08 08:13:52
【问题描述】:
我正在使用以下代码从客户端获取 IP 地址。
public String getIp(@Context HttpServletRequest requestContext, @Context SecurityContext context) {
HttpServletRequest request = (HttpServletRequest) FacesContext.getCurrentInstance().getExternalContext().getRequest();
String ipAddress = request.getHeader("X-FORWARDED-FOR");
if (ipAddress == null) {
ipAddress = request.getRemoteAddr();
}
return ipAddress;
}
但是,当它执行时,它返回0:0:0:0:0:0:0:1。它在我的本地电脑上运行,我希望它能够返回良好的 ol127.0.0.1。有什么想法为什么不呢?
【问题讨论】:
-
不是重复的。问题不在于获取 IP 地址,而在于为什么它是 0:0:0:0:0:0:0:1 而不是 127.0.0.1
-
0:0:0:0:0:0:0:1是 IPv6 IP 地址。如果您只需要 IPv4 响应,则需要确保将其设置为 IPv4。请参阅@Javier 的回答。