java获取手机客户端的ip地址?
阿神
阿神 2017-04-18 10:29:14
[Java讨论组]

在客户端和服务之间增加了中间转发服务器,所以获取到都是转发服务器的地址,尝试了网上帖子的方法后还是不行。。。求大神帮忙!

public static String GetIP(HttpServletRequest request){

     String 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.getRemoteAddr();
    }
    
    return ip;
}
阿神
阿神

闭关修行中......

全部回复(1)
天蓬老师

你说了,有转发服务器,首先要保证转发时要设置原始访问ip,才能保证后面可以获取到。比如nginx转发的可以配置:

proxy_set_header  Host               $host;  
      proxy_set_header  X-Real-IP          $remote_addr;#提交请求的真实ip,为了目标服务也能获取到请求的真实ip  
      proxy_set_header  X-Forwarded-For    $proxy_add_x_forwarded_for;  
      proxy_set_header  X-Forwarded-Proto  http;  
热门教程
更多>
最新下载
更多>
网站特效
网站源码
网站素材
前端模板
关于我们 免责申明 举报中心 意见反馈 讲师合作 广告合作 最新更新 English
php中文网:公益在线php培训,帮助PHP学习者快速成长!
关注服务号 技术交流群
PHP中文网订阅号
每天精选资源文章推送
PHP中文网APP
随时随地碎片化学习

Copyright 2014-2025 https://www.php.cn/ All Rights Reserved | php.cn | 湘ICP备2023035733号