>  기사  >  백엔드 개발  >  사용자의 실제 IP 주소에 대한 PHP 코드를 가져옵니다.

사용자의 실제 IP 주소에 대한 PHP 코드를 가져옵니다.

WBOY
WBOY원래의
2016-07-25 09:00:23882검색
获取用户真实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;  
    }  
    ?>


성명:
본 글의 내용은 네티즌들의 자발적인 기여로 작성되었으며, 저작권은 원저작자에게 있습니다. 본 사이트는 이에 상응하는 법적 책임을 지지 않습니다. 표절이나 침해가 의심되는 콘텐츠를 발견한 경우 admin@php.cn으로 문의하세요.