如何获取正在访问服务器的用户的IP地址[重复]

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了如何获取正在访问服务器的用户的IP地址[重复]相关的知识,希望对你有一定的参考价值。

这个问题在这里已有答案:

我在下面尝试了这段代码

@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/

以上是关于如何获取正在访问服务器的用户的IP地址[重复]的主要内容,如果未能解决你的问题,请参考以下文章

获取用于从 Android 设备连接到 Firebase 的 IP 地址 [重复]

使用 Vue.js 获取用户的 IP 地址 [重复]

如何在整个网络中找到系统的IP地址[重复]

获取访问我的站点的客户端的 MAC 地址和 IP 地址 [重复]

JavaScript:如何查找 IP 地址 [重复]

如何获取客户端/用户 IP 地址? [复制]