hi,欢迎访问本站!
当前位置: 首页php教程正文

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

xiaoqihv php教程 25阅读

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地址

标签:
声明:无特别说明,转载请标明本文来源!