• 分享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>";
  • 相关阅读:
    oracle中删除某个用户下的所有表
    oracle中关于clob类型字段的查询效率问题
    nvl(sum(字段),0) 的时候,能展示数据0,但是group by 下某个伪列的时候,查不到数据(转载)
    IDEA内存设置
    idea启动报Plugin Error错误的解决办法(亲测有效)
    有关大数据(如有侵权请联系博主删除)
    Spring AOP增强(Advice)
    带事务管理的spring数据库动态切换
    Spring配置多个数据源,并实现数据源的动态切换转载)
    洛谷 p1803 凌乱的yyy
  • 原文地址:https://www.cnblogs.com/fx2008/p/2974941.html
Copyright © 2020-2023  润新知