java获取客户端ip, cookie

因为用户有可能通过apache,nginx等代理服务器访问,客户端和服务之间增加了中间层,因此服务器无法直接拿到客户端的IP,服务器端应用也无法直接通过转发请求的地址返回给客户端。但是在转发请求的HTTP头信息中,增加了X-FORWARDED-FOR信息。用以跟踪原有的客户端IP地址和原来客户端请求的服务器地址。

String ip  =  getRequest().getHeader( " x-forwarded-for " );
    if (ip  ==   null   ||  ip.length()  ==   0   ||   " unknown " .equalsIgnoreCase(ip))  {
        ip  =  getRequest().getHeader( " Proxy-Client-IP " );
    }
    if (ip  ==   null   ||  ip.length()  ==   0   ||   " unknown " .equalsIgnoreCase(ip))  {
        ip  =  getRequest().getHeader( " WL-Proxy-Client-IP " );
    }
    if (ip  ==   null   ||  ip.length()  ==   0   ||   " unknown " .equalsIgnoreCase(ip))  {
        ip  =  getRequest().getRemoteAddr();
    }
    System.out.println(ip);


Cookie []cookies = getRequest().getCookies();
    Cookie c = null;
    String usertype = null;
    if(cookies!=null) {
        for (int i = 0; i < cookies.length; i++) {
            c = cookies[i];
            if (c.getName().equals("usertype")) {
                System.out.println("usertype:" + c.getValue());
                usertype= c.getValue();
            }
        }
    }
最后编辑于
©著作权归作者所有,转载或内容合作请联系作者
【社区内容提示】社区部分内容疑似由AI辅助生成,浏览时请结合常识与多方信息审慎甄别。
平台声明:文章内容(如有图片或视频亦包括在内)由作者上传并发布,文章内容仅代表作者本人观点,简书系信息发布平台,仅提供信息存储服务。

相关阅读更多精彩内容

友情链接更多精彩内容