JAVA获取客户端IP地址

这篇具有很好参考价值的文章主要介绍了JAVA获取客户端IP地址。希望对大家有所帮助。如果存在错误或未考虑完全的地方,请大家不吝赐教,您也可以点击"举报违法"按钮提交疑问。

  • 场景:需要服务端获取到客户端得ip,然后塞到请求参数中。

  • 自己整理了下这两种获取客户端IP得方法。目前自己在使用得是第二种。

  1. 第一种方法

 public static String getIp2(HttpServletRequest request) {
        String ip = request.getHeader("X-Forwarded-For");
        if(StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){
            //多次反向代理后会有多个ip值,第一个ip才是真实ip
            int index = ip.indexOf(",");
            if(index != -1){
                return ip.substring(0,index);
            }else{
                return ip;
            }
        }
        ip = request.getHeader("X-Real-IP");
        if(StringUtils.isNotEmpty(ip) && !"unKnown".equalsIgnoreCase(ip)){
            return ip;
        }
        return request.getRemoteAddr();
    }
  1. 第二种方法

public static String getClinetIP(HttpServletRequest request){
        String ip = null;
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
            ip = request.getHeader("x-forwarded-for");
        } 
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
            ip = request.getHeader("Proxy-Client-Ip");
        } 
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
            ip = request.getHeader("WL-Proxy-Client-Ip");
        } 
        if(ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
            ip = request.getHeader("entrust-client-ip");
        }
        if (ip == null || ip.length() == 0 || "unknown".equalsIgnoreCase(ip)){
            ip = request.getRemoteAddr();
            if ("127.0.0.1".equals(ip) || "0:0:0:0:0:0:0:1".equals(ip.trim())){
                InetAddress inetAddress = null;
                try{
                    inetAddress =InetAddress.getLocalHost();
                }catch (UnknownHostException e){
                    System.out.println("获取IP地址失败");
                }
                ip = inetAddress.getHostAddress();
            }
        }
        //多级 方向代理
        if (ip.indexOf(",")>0){
            ip = ip.substring(0,ip.indexOf(",")).trim();
        }
        
        return ip;
    }

文章来源地址https://www.toymoban.com/news/detail-604387.html

到了这里,关于JAVA获取客户端IP地址的文章就介绍完了。如果您还想了解更多内容,请在右上角搜索TOY模板网以前的文章或继续浏览下面的相关文章,希望大家以后多多支持TOY模板网!

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处: 如若内容造成侵权/违法违规/事实不符,请点击违法举报进行投诉反馈,一经查实,立即删除!

领支付宝红包 赞助服务器费用

相关文章

  • 教你如何获取客户端IP和MAC地址的工具类,实战篇(Java版)

    在开发过程中,都会遇到获取IP或MAC地址的情况,那么如何在代码层面实现获取呢?接下来就为大家从代码层面介绍获取的方式。

    2024年02月03日
    浏览(36)
  • 叫你如何获取客户端IP和MAC地址的工具类,实战篇(Java版)

    在开发过程中,都会遇到获取IP或MAC地址的情况,那么如何在代码层面实现获取呢?接下来就为大家从代码层面介绍获取的方式。

    2024年02月12日
    浏览(37)
  • Java 获取客户端IP

      ps:代码引用于 JAVA获取客户端IP地址-CSDN博客 https://blog.csdn.net/m0_71867302/article/details/129683061?ops_request_misc=%257B%2522request%255Fid%2522%253A%2522170738691916800226562378%2522%252C%2522scm%2522%253A%252220140713.130102334..%2522%257Drequest_id=170738691916800226562378biz_id=0utm_medium=distribute.pc_search_result.none-task-bl

    2024年02月22日
    浏览(31)
  • java获取客户端ip的正确方式

    在JSP里,获取客户端的IP地址的方法是:request.getRemoteAddr(),这种方法在大部分情况下都是有效的。但是在通过了Apache,Squid等反向代理软件就不能获取到客户端的真实IP地址了。 如果使用了反向代理软件,将http://192.168.1.110:2046/的URL反向代理为http://www.abc.com/的URL时,用reques

    2024年02月05日
    浏览(33)
  • Java后台获取客户端ip与服务器ip的方法

    1.可以用 RestTemplate 发送http请求

    2024年02月11日
    浏览(29)
  • nginx-获取客户端IP地址

    上有服务器与客户端中间是有nginx代理服务器的,上游服务器如何获取客户端真实ip地址? nginx代理服务器设置X-Forwarded-For的header参数,代理服务器通过remote_addr获取客户端ip地址,将ip地址写入nginx代理服务器的X-Forwarded-For中, 上游服务端通过在nginx的这个参数拿到客户端IP地

    2024年02月11日
    浏览(36)
  • Java之获取Nginx代理之后的客户端IP

    Nginx 代理接口之后,后台获取的IP地址都是127.0.0.1, 解决办法是需要配置Nginx搭配后台获取的方法,获得设备的真实地址 。我们想要获取的就是nginx代理日志中的这个IP 首先在nginx代理的对应location增加如下配置 示例 获取客户端IP地址工具类 这样就可以通过代码获取到客户端

    2024年02月21日
    浏览(29)
  • 【JavaScript】如何获取客户端IP地址?

    使用这个库:request-ip 它按照如下顺序获取请求的IP地址: X-Client-IP X-Forwarded-For (Header may return multiple IP addresses in the format: “client IP, proxy 1 IP, proxy 2 IP”, so we take the first one.) CF-Connecting-IP (Cloudflare) Fastly-Client-Ip (Fastly CDN and Firebase hosting header when forwared to a cloud function) True-Clie

    2024年02月05日
    浏览(36)
  • 获取客户端真实 IP 地址的最佳实践

    1. 业务上云带来性能收益 公司从去年全面推动业务上云,而以往 IDC 架构部署上,接入层采用典型的 4 层 LVS 多机房容灾架构,在业务高峰时期,扩容困难(受限于物理机资源和 LVS 内网网段的网络规划),且抵挡不住 HTTPS 卸载引发的高 CPU 占用。 而经过压力测试发现,使用

    2024年02月05日
    浏览(42)
  • Qt 获取本机 ip地址方法 获取客户端ip和端口的方法

    上述函数返回本机所有IPv4的ip地址列表,比如192.168.1.10|192.166.1.95 其它方法=》 获取客户端IP地址:

    2024年02月14日
    浏览(30)

觉得文章有用就打赏一下文章作者

支付宝扫一扫打赏

博客赞助

微信扫一扫打赏

请作者喝杯咖啡吧~博客赞助

支付宝扫一扫领取红包,优惠每天领

二维码1

领取红包

二维码2

领红包