Heim >php教程 >php手册 >获得用户的真实IP地址

获得用户的真实IP地址

WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWB
WBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOYWBOriginal
2016-06-13 10:47:51764Durchsuche

  
/**
 * 获得用户的真实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; 

?> 

摘自 chaojie2009的专栏

Stellungnahme:
Der Inhalt dieses Artikels wird freiwillig von Internetnutzern beigesteuert und das Urheberrecht liegt beim ursprünglichen Autor. Diese Website übernimmt keine entsprechende rechtliche Verantwortung. Wenn Sie Inhalte finden, bei denen der Verdacht eines Plagiats oder einer Rechtsverletzung besteht, wenden Sie sich bitte an admin@php.cn
Vorheriger Artikel:一个很傻的无限分类Nächster Artikel:qq 登录api php类