加了cdn之后如何在Web应用程序中获取访客真实IP?
时间:2017-8-31 23:49 热度:1509° 评论:0 条

原理
真实ip被cdn放在x-forward-for里面(大多说cdn/代理程序等都会放入x-forward-for 形似就是 真实ip.代理ip.代理ip...)。 您可以通过下面的方法来获取:
【ASP】
Request.ServerVariables(HTTP_X_FORWARDED_FOR)
【PHP】
$_SERVER[HTTP_X_FORWARDED_FOR]
【JSP】
request.getHeader(HTTP_X_FORWARDED_FOR)
【tomcat】
1.在反向代理请求中有X-Forwarded-For的前提下,tomcat的配置文件server.xml中org.apache.catalina.valves.AccessLogValve的pattern中包含%{X-Forwarded-For}i即可在access log看到客户端的真实ip;
2.pattern="%{X_Forwarded_For}i|%t|%s|%S|%b|%D|%q|%T|%{Referer}i|%{User-Agent}i"/>
例子
/include/lib/function.base.php
/**
* 获取用户ip地址
*/
function getIp() {
$ip = isset($_SERVER['REMOTE_ADDR']) ? $_SERVER['REMOTE_ADDR'] : '';
if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
$list = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
$ip = $list[0];
}
if (!ip2long($ip)) {
$ip = '';
}
return $ip;
} 

捐赠支持:如果觉得这篇文章对您有帮助,请“扫一扫”鼓励作者!
相关文章本文作者:沁雨寒 文章标题: 加了cdn之后如何在Web应用程序中获取访客真实IP?
本文地址:https://blog.sxx1314.com/php/478.html
版权声明:若无注明,本文皆为“unix 软硬件 技术宅 ”原创,转载请保留文章出处。百度已收录
本文地址:https://blog.sxx1314.com/php/478.html
版权声明:若无注明,本文皆为“unix 软硬件 技术宅 ”原创,转载请保留文章出处。百度已收录















