所在位置:首页 > 学习心得 > PHP获得用户的真实IP地址
PHP获得用户的真实IP地址
  • PHP获得用户的真实IP地址
    发布时间:2011-04-19 类别:PHP技术 来源:侠客工作室
    • 1
    • 2
    • 3
    • 4
    • 5
  •  /**
     * 获得用户的真实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 = !empty($onlineip[0]) ? $onlineip[0] : ‘0.0.0.0‘;

        return $realip;
    }

  • ☆☆☆技术交流群:5684178☆☆☆
  • 上一篇:php用正则判断是否为数字
  • 下一篇:PHP面试题汇总
侠客工作室主要承揽网站制作|企业建站|北京网站制作|北京网站建设|北京企业建站|专业仿站|SEO优化等业务
地址:北京市海定区清河水木天成 电话:13718388147 13718388147 传真:13718388147 访问统计:
投诉电话:13718388147 投诉QQ:点击这里给我发消息 客服信箱:1300105556@qq.com 邮编:102200 北京网站建设地图 北京网站建设RSS地图
版权所有 2009-2014侠客工作室【北京网站建设】 京ICP备11021494号-1