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