【PHP】获取用户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;

}


转载于:

https://m.php.cn/article/430535.html

猜你喜欢

转载自blog.csdn.net/qq_34802028/article/details/107573394