关于客户端 IP 的校验

1、java中,获取客户端IP一般使用 request.getRemoteAddr(),但是如果应用程序使用了反向代理(如apache或者nginx),则 request.getRemoteAddr()取到的IP将始终是反向代理服务器的IP,而非真实客户端的IP。

 

2、反向代理环境下,取得客户端真实IP一般使用 request.getHeader("x-forwarded-for"),但是http header头是可以伪造的,取到的IP可能是客户端伪造的IP,而非真实的客户端IP。

 

3、通过httpclient自定义http header示例

HttpGet httpGet = new HttpGet(urlStr);
        httpGet.setHeader("X-Forwarded-For", "10.110.1.42");

 

你可能感兴趣的:(IP)