当前位置:首页 > PHP教程 > php高级应用 > 列表

PHP 获取客户端 IP 地址的方法实例代码

发布:smiling 来源: PHP粉丝网  添加日期:2021-11-01 15:11:30 浏览: 评论:0 

这篇文章主要介绍了PHP 获取客户端 IP 地址的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下。

先来了解一个变量的含义:

$_SERVER['REMOTE_ADDR']:浏览当前页面的用户计算机的ip地址

$_SERVER['HTTP_CLIENT_IP']:客户端的ip

$_SERVER['HTTP_X_FORWARDED_FOR']:浏览当前页面的用户计算机的网关

$_SERVER['HTTP_X_REAL_IP']:nginx 代理模式下,获取客户端真实IP

  1. /** 
  2.  * 获取客户端IP地址 
  3.  */ 
  4. function real_ip() 
  5.   $ip = $_SERVER['REMOTE_ADDR']; 
  6.   if (isset($_SERVER['HTTP_X_FORWARDED_FOR']) && preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s'$_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) { 
  7.     foreach ($matches[0] AS $xip) { 
  8.       if (!preg_match('#^(10|172\.16|192\.168)\.#'$xip)) { 
  9.         $ip = $xip
  10.         break
  11.       } 
  12.     } 
  13.   } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/'$_SERVER['HTTP_CLIENT_IP'])) { 
  14.     $ip = $_SERVER['HTTP_CLIENT_IP']; 
  15.   } elseif (isset($_SERVER['HTTP_CF_CONNECTING_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/'$_SERVER['HTTP_CF_CONNECTING_IP'])) { 
  16.     $ip = $_SERVER['HTTP_CF_CONNECTING_IP']; 
  17.   } elseif (isset($_SERVER['HTTP_X_REAL_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/'$_SERVER['HTTP_X_REAL_IP'])) { 
  18.     $ip = $_SERVER['HTTP_X_REAL_IP']; 
  19.   } 
  20.   return $ip
  21. }

Tags: PHP获取客户端IP

分享到: