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谜题
    Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 的解决办
    考虑用静态工厂代替构造器
    Can't connect to local MySQL server through socket '/var/lib/mysql/mysql.sock' 的解决办
    100 个高质量的 XHTML/CSS 模板(上)
    登陆时的安全性
    Flex 开发架构(五): Mate-基于标签的框架
    NIO的基本概念及简单示例
    Flex与jsp的联系
    福布斯:Sun的六大失误
  • 原文地址:https://www.cnblogs.com/fx2008/p/2974941.html
Copyright © 2011-2022 走看看