转自:http://developer.51cto.com/art/200911/164514.htm
PHP获取IP的方法有许多种,我们今天向大家总结了六种方法,希望通过对这六种方法的学习,能够加深我们对PHP语言的进一步了解,巩固我们所掌握的知识。
PHP获取IP方法一:
<?php
echo "<br>";
?> <?php function GetIP()
{
if(!empty($_SERVER["HTTP_CLIENT_IP"])) $cip = $_SERVER["HTTP_CLIENT_IP"];
else if(!empty($_SERVER["HTTP_X_FORWARDED_FOR"])) $cip = $_SERVER["HTTP_X_FORWARDED_FOR"];
else if(!empty($_SERVER["REMOTE_ADDR"])) $cip = $_SERVER["REMOTE_ADDR"];
else $cip = "无法获取!";
return $cip;
}
echo "<br>";
?>
PHP获取IP方法二:
<?php
echo "<br>";
?> <?
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地址是:".$ip."<br>";
?>
PHP获取IP方法三:
<?php
echo "<br>";
?> <?
$iipp = $_SERVER["REMOTE_ADDR"];
echo $iipp;
echo "<br>";
?>
PHP获取IP方法四:
<?php
echo "<br>";
?> <?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."<br>";
?>
PHP获取IP方法五:
<?php
echo "<br>";
?> <?
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();
echo "<br>";
?>
PHP获取IP方法六:
<?php
echo "<br>";
?> <?
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;
echo "<br>";
?>