获取IP的六种方式

方法一:

function getip() {

  static $ip = '';

  $ip = $_SERVER['REMOTE_ADDR'];

  if(isset($_SERVER['HTTP_CDN_SRC_IP'])) {

    $ip = $_SERVER['HTTP_CDN_SRC_IP'];

  } 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_X_FORWARDED_FOR']) AND 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;

      }

    }

  }

  return $ip;

}

 

方法二:

error_reporting (E_ERROR | E_WARNING | E_PARSE);

if($HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"]){

$ip = $HTTP_SERVER_VARS["HTTP_X_FORWARDED_FOR"];

}

elseif($HTTP_SERVER_VARS["HTTP_CLIENT_IP"]){

$ip = $HTTP_SERVER_VARS["HTTP_CLIENT_IP"];

}

elseif ($HTTP_SERVER_VARS["REMOTE_ADDR"]){

$ip = $HTTP_SERVER_VARS["REMOTE_ADDR"];

}

elseif (getenv("HTTP_X_FORWARDED_FOR")){

$ip = getenv("HTTP_X_FORWARDED_FOR");

}

elseif (getenv("HTTP_CLIENT_IP")){

$ip = getenv("HTTP_CLIENT_IP");

}

elseif (getenv("REMOTE_ADDR")){

$ip = getenv("REMOTE_ADDR");

}

else{

$ip = "Unknown";

}

echo $ip;

 

方法三:

$iipp = $_SERVER["REMOTE_ADDR"];

echo $iipp ;

 

方法四:

$user_IP = ($_SERVER["HTTP_VIA"]) ? $_SERVER["HTTP_X_FORWARDED_FOR"] : $_SERVER["REMOTE_ADDR"];

$user_IP = ($user_IP) ? $user_IP : $_SERVER["REMOTE_ADDR"];

echo $user_IP

 

方法五:

function get_real_ip()

{

$ip=false;

if(!empty($_SERVER["HTTP_CLIENT_IP"])){

 $ip = $_SERVER["HTTP_CLIENT_IP"];

}

if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])){

 $ips = explode (", ", $_SERVER['HTTP_X_FORWARDED_FOR']);

 if($ip){

  array_unshift($ips, $ip); $ip = FALSE;

 }

 for($i = 0; $i < count($ips); $i++){

  if (!eregi ("^(10|172\.16|192\.168)\.", $ips[$i])){

  $ip = $ips[$i];

  break;

  }

 }

}

return($ip ? $ip : $_SERVER['REMOTE_ADDR']);

}

 

方法六:

if(getenv('HTTP_CLIENT_IP')){

$onlineip = getenv('HTTP_CLIENT_IP');

}

elseif(getenv('HTTP_X_FORWARDED_FOR')){

$onlineip = getenv('HTTP_X_FORWARDED_FOR');

}

elseif(getenv('REMOTE_ADDR')){

$onlineip = getenv('REMOTE_ADDR');

}

else{

$onlineip = $HTTP_SERVER_VARS['REMOTE_ADDR'];

}

 

  

posted @ 2019-05-22 17:26  落华  阅读(179)  评论(0编辑  收藏  举报