ホームページ  >  記事  >  バックエンド開発  >  PHP取得用户的真实IP地址

PHP取得用户的真实IP地址

WBOY
WBOYオリジナル
2016-06-13 11:36:57791ブラウズ

PHP获得用户的真实IP地址

/** * 获得用户的真实IP地址 * * @access  public * @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 = !empty($onlineip[0]) ? $onlineip[0] : '0.0.0.0';     return $realip;}

?

声明:
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。