获取客户端IP

来源:互联网 发布:电脑网络怎么连接不了 编辑:程序博客网 时间:2024/06/07 14:17
  /**
         * 获取客户端IP地址
         *
         * @param boolean $pasportlogin
         * @return string
         */
        public static function getClientIP($pasportlogin = true)
        {
           if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))
               $ip = getenv("HTTP_CLIENT_IP");
           else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))
               $ip = getenv("HTTP_X_FORWARDED_FOR");
           else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))
               $ip = getenv("REMOTE_ADDR");
           else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))
               $ip = $_SERVER['REMOTE_ADDR'];
           else
               $ip = "unknown";
            if($pasportlogin === true)
            {
                    if(false !== strpos($ip,','))
                    {
                            $arrIp =  explode (', ', $ip);
                            for ($i = 0; $i < count($arrIp); $i++)
                            {
                                    if (!eregi ("^(10|172\.16|192\.168)\.", $arrIp[$i]))
                                    {
                                            $ip = $arrIp[$i];
                                            break;
                                    }
                            }
                    }
            }
            return($ip);
        }
0 0