hi,欢迎访问本站!
当前位置: 首页编程开发正文

php获取用户IP地址(兼容CDN)

墨初 编程开发 389阅读

php获取用户的IP地址一般都是通过 $_SERVER['REMOTE_ADDR'] 变量来获取到的,但有的网站使用了CDN代理加速,在这种情况下使用$_SERVER['REMOTE_ADDR']获取的IP地址有可能是CDN的代理IP地址,下面的博文就针对网站使用代码CDN加速的情况下,获取IP地址做个简单的介绍。

php 获取IP地址的方法

例1:

在网站不使用cdn加速代理的情况下,可以通过下面的代码获取用户的IP地址。

$_SERVER['REMOTE_ADDR'];
// 119.164.27.53

例2:

网址在使用CDN的情况下,都会有一个 HTTP_X_FORWARDED_FOR 字段,此字段里面面包含了网站经过的所有代理的IP地址,其中就有用户的真实IP地址。

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])){
    //为了兼容百度的CDN,所以转成数组
    $arr = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
    echo $arr[0];
}else{
    echo $_SERVER['REMOTE_ADDR'];
}

PS:注意 $_SERVER['HTTP_X_FORWARDED_FOR'] 在某些CDN代理下,有多个IP址理输出,而第一个就是用户的真实IP地址

声明:无特别说明,转载请标明本文来源!
相关推荐