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

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

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

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

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

/** * 获取客户端IP地址 */function real_ip(){  $ip = $_SERVER["REMOTE_ADDR"];  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)) {    foreach ($matches[0] AS $xip) {      if (!preg_match("#^(10|172.16|192.168).#", $xip)) {        $ip = $xip;        break;      }    }  } elseif (isset($_SERVER["HTTP_CLIENT_IP"]) && preg_match("/^([0-9]{1,3}.){3}[0-9]{1,3}$/", $_SERVER["HTTP_CLIENT_IP"])) {    $ip = $_SERVER["HTTP_CLIENT_IP"];  } elseif (isset($_SERVER["HTTP_CF_CONNECTING_IP"]) && preg_match("/^([0-9]{1,3}.){3}[0-9]{1,3}$/", $_SERVER["HTTP_CF_CONNECTING_IP"])) {    $ip = $_SERVER["HTTP_CF_CONNECTING_IP"];  } elseif (isset($_SERVER["HTTP_X_REAL_IP"]) && preg_match("/^([0-9]{1,3}.){3}[0-9]{1,3}$/", $_SERVER["HTTP_X_REAL_IP"])) {    $ip = $_SERVER["HTTP_X_REAL_IP"];  }  return $ip;}

总结

以上所述是小编给大家介绍的PHP 获取客户端 IP 地址的方法实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!