获取用户的ip地址

在全局魔术变量$_SERVER中,有三个量存储了ip

第一个:

HTTP_X_FORWARDED_FORclientip,proxy1,proxy2....代理ip。使用逗号,进行分隔。所以使用他获取用户的ip。

第二个:

HTTP_CLIENT_IP这个是一个可能存在的ip

第三个:

REMOTE_ADDR可以通过代理伪装起来,但是这个ip是与你的服务器真正进行连接的服务器。

按照上面的顺序依次获取ip

获取ip的代码如下:

         $ip = '';
         if (!empty($_SERVER['HTTP_X_FORWARDED_FOR']) && strcasecmp($_SERVER['HTTP_X_FORWARDED_FOR'], 'unknown')) {
             $ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
             strpos($ip, ',') && list($ip) = explode(',', $ip);
         } else if (!empty($_SERVER['HTTP_CLIENT_IP']) && strcasecmp($_SERVER['HTTP_CLIENT_IP'], 'unknown')) {
             $ip = $_SERVER['HTTP_CLIENT_IP'];
         } else if (!empty($_SERVER['REMOTE_ADDR']) && strcasecmp($_SERVER['REMOTE_ADDR'], 'unknown')) {
             $ip = $_SERVER['REMOTE_ADDR'];
         }
         return $ip;

猜你喜欢

转载自blog.csdn.net/less_cold/article/details/80055479
今日推荐