PHP 获取ip地址代码汇总


  本文标签:PHP,获取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;
}

代码二:

<?php
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;
?>

方法三:

<?php
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp ;
?>

方法四:

<?php
$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
?>

方法五:

<?php
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]);
}
echo get_real_ip();
?>

方法六:

<?php
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];
}
echo $onlineip;
?>