PHP获取IP的多种方式解析

转自: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>";  
?>

 



 

相关推荐

Leave a Comment