帮助中心FAQ

PHP代码获取IP

PHP获取IP都是使用HTTP_X_FORWARDED_FORHTTP_CLIENT_IPHTTP_CLIENT_IP这几个函数。下面是集中PHP获取IP的方式。

方法1

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

?>

 

 

方法2

<?php

$iipp = $_SERVER["REMOTE_ADDR"];

echo $iipp ;

?>

 

 

 

 

方法3

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

?>

 

 

方法4

<?php

functionget_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']);

}

echoget_real_ip();

?>

 

 

 

 

方法5

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

?>

 

         使用方法2测试: