PHP 获取ip地址代码汇总
代码一:
functiongetip(){
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'])ANDpreg_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
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();
?>
方法六:
<?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;
?>