获取用户真实IP地址的php代码

发布时间:2020-07-05编辑:脚本学堂
获取用户真实IP地址的php代码,供大家学习参考。
代码如下:
<?php       
    /** 
     * 获得用户的真实IP地址 
     * 
     * @return  string 
     */  
    function real_ip(){  
        static $realip = NULL;  
       
        if ($realip !== NULL){  
            return $realip;  
        }  
       
        if (isset($_SERVER)){  
            if (isset($_SERVER['HTTP_X_FORWARDED_FOR'])){  
                $arr = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);  
                /* 取X-Forwarded-For中第一个非unknown的有效IP字符串 */  
                foreach ($arr AS $ip){  
                    $ip = trim($ip);  
       
                    if ($ip != 'unknown'){  
                        $realip = $ip;  
       
                        break;  
                    }  
                }  
            }  
            elseif (isset($_SERVER['HTTP_CLIENT_IP'])){  
                $realip = $_SERVER['HTTP_CLIENT_IP'];  
            }  
            else{  
                if (isset($_SERVER['REMOTE_ADDR'])){  
                    $realip = $_SERVER['REMOTE_ADDR'];  
                }  
                else{  
                    $realip = '0.0.0.0';  
                }  
            }  
        }  
        else{  
            if (getenv('HTTP_X_FORWARDED_FOR')){  
                $realip = getenv('HTTP_X_FORWARDED_FOR');  
            }  
            elseif (getenv('HTTP_CLIENT_IP')){  
                $realip = getenv('HTTP_CLIENT_IP');  
            }  
            else{  
                $realip = getenv('REMOTE_ADDR');  
            }  
        }  
       
        preg_match("/[d.]{7,15}/", $realip, $onlineip);  
        $realip = !emptyempty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';  
       
        return $realip;  
    }  
    ?>

您可能感兴趣的文章:
php 获取外网真实IP的二种方法
php 获取客户端IP地址、地理信息、浏览器信息、本地真实IP的代码
php获取客户端的真实IP的方法介绍