分享PHP获取客户端IP的几种不同方式

分享PHP获取客户端IP的几种不同方式

PHP获取IP的方法有许多种,我们今天向大家总结了六种方法,希望通过对这六种方法的学习,能够加深我们对PHP语言的进一步了解,巩固我们所掌握的知识。

PHP获取IP方法一:

1
2
3
4
5
6
7
8
9
10
11
12
13
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方法二:

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
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方法三:

1
2
3
$iipp = $_SERVER["REMOTE_ADDR"];  
echo $iipp;  
echo "<br>";

PHP获取IP方法四:

1
2
3
$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方法五:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
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方法六:

 

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
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>";
posted @ 2013-03-22 10:18  火腿骑士  阅读(151)  评论(0编辑  收藏  举报