所有资讯
微信公众号
微信小程序
手机App

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

浏览量:1494    日期:2018-11-28 12:07
这篇文章主要介绍了PHP 获取客户端 IP 地址的方法,本文通过实例代码给大家介绍的非常详细,具有一定的参考借鉴价值 ,需要的朋友可以参考下

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


$_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 地址的方法实例代码,希望对大家有所帮助,如果大家有任何疑问欢迎给我留言,小编会及时回复大家的!


 
成为您更加专业的技术合伙人
服务热线:15165022080
加微信号:15165022080
客服QQ:1828087588、1421667633
电子邮箱:1828087588@qq.com
 
软件开发咨询:15165022080