这个问题在这里已有答案:
我在下面尝试了这段代码
@Autowired
private HttpServletRequest request;
request.getRemoteAddr();
但我只得到测试环境的服务器的IP地址:220.5.13.85,我的IP地址是220.5.13.45。
我试图在网络选项卡下的pagesource中查看请求标头但我找不到我的IP地址。我只能在General和Host下看到远程地址:220.5.13.85:80:220.5.13.85 Referer:请求头下的http://220.5.13.85是相同的。
获取客户端的IP地址没有标准方法。
一种方法是解析“X-Forwarded-For”并依赖request.getRemoteAddr();
public static String getClientIpAddress(HttpServletRequest request) {
String xForwardedForHeader = request.getHeader("X-Forwarded-For");
if (xForwardedForHeader == null) {
return request.getRemoteAddr();
} else {
return new StringTokenizer(xForwardedForHeader, ",").nextToken().trim();
}
}
以下网址还提到了其他方法:
https://www.mkyong.com/java/how-to-get-client-ip-address-in-java/