zoukankan      html  css  js  c++  java
  • 分享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>";
  • 相关阅读:
    【转载】java调用C++写的DLL
    【转载】Java实现word转pdf
    【原创】由一件匪夷所思的事情所想到的
    【原创】不定字段的数据库表设计思路
    【原创】IBM Websphere 报错:JSPG0120E: 为 pageEncoding 属性和匹配 URI 模式的配置元素指定不同的值是非法的。
    weblogic <BEA-000438>
    svn报错 400 Bad Request
    实习技术知识点
    重写HashMap
    QUnit利用代理测试不同PHP开发服务器的json服务
  • 原文地址:https://www.cnblogs.com/fx2008/p/2974941.html
Copyright © 2011-2022 走看看