X-Forwarded-For 获得用户的真实ip

什么是X-Forwarded-For?

X-Forwarded-For:简称XFF头,它代表客户端,也就是HTTP的请求端真实的IP,只有在通过了HTTP 代理或者负载均衡服务器时才会添加该项。它不是RFC中定义的标准请求头信息,在squid缓存代理服务器开发文档中可以找到该项的详细介绍。标准格式如下:X-Forwarded-For: client1, proxy1, proxy2。

如何通过 X-Forwarded-For来获得用户的真实ip

java 获得用户真实 IP 代码举例:

public String getRemoteIP(HttpServletRequest request)
{
    if (request.getHeader("X-Forwarded-For") == null) /* 存在 X-Forwarded-For 吗? */
    {
        return request.getRemoteAddr(); /* 兼容已有程序 */
    }
    
    return request.getHeader("X-Forwarded-For"); /* 返回用户真实 IP, 如为多个 IP 时, 则取第一个 */
}

 

简单来说 使用request.getRemoteAddr();  如果在用户启用了代理服务器的情况下 是无法获得真实的ip地址的

那么当使用负载均衡服务器的情况下 可以通过request.getHeader("X-Forwarded-For") 解析请求头来获得真实的ip地址

 

评论 2
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值