PHP 获取IP地址

2018-07-20    来源:open-open

容器云强势上线!快速搭建集群,上万Linux镜像随意使用
    <?php  
    function GetIP()  
        {  
            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中第x个非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 = ! empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';  
            return $realip;  
        }  
    GetIP();  
    ?>  

标签:

版权申明:本站文章部分自网络,如有侵权,请联系:west999com@outlook.com
特别注意:本站所有转载文章言论不代表本站观点!
本站所提供的图片等素材,版权归原作者所有,如需使用,请与原作者联系。

上一篇: PHP时间处理函数

下一篇: php 把汉字转换为拼音