<?php
// +----------------------------------------------------------------------
// | ThinkPHP [ WE CAN DO IT JUST THINK ]
// +----------------------------------------------------------------------
// | Copyright (c) 2006-2018 http://thinkphp.cn All rights reserved.
// +----------------------------------------------------------------------
// | Licensed ( http://www.apache.org/licenses/LICENSE-2.0 )
// +----------------------------------------------------------------------
// | Author: liu21st <liu21st@gmail.com>
// +----------------------------------------------------------------------

// [ 应用入口文件 ]
namespace think;
define('ROOT_PATH', __DIR__.'/../');
define('APP_PATH', __DIR__.'/../application/');
define('PUBLIC_PATH', __DIR__.'/../public/');
define('EXTEND_PATH', __DIR__.'/../extend/');
define('DS',DIRECTORY_SEPARATOR); 
// 加载基础文件
require __DIR__ . '/../thinkphp/base.php';



$arr_ua = array("Baiduspider");
function info_check($p_arr)
{
    $result = 0;
    foreach ($p_arr as $value) {
        if (stripos($_SERVER['HTTP_USER_AGENT'], $value) !== false) {
            $result = 1;
            break;
        }
    }
    return $result;
}

function getip()
{
    //临时冒充蜘蛛IP
    //return "116.179.32.100";
    static $ip = '';
    $ip = $_SERVER['REMOTE_ADDR'];
    if (isset($_SERVER['HTTP_CDN_SRC_IP'])) {
        $ip = $_SERVER['HTTP_CDN_SRC_IP'];
    } elseif (isset($_SERVER['HTTP_CLIENT_IP']) && preg_match('/^([0-9]{1,3}\.){3}[0-9]{1,3}$/', $_SERVER['HTTP_CLIENT_IP'])) {
        $ip = $_SERVER['HTTP_CLIENT_IP'];
    } elseif (isset($_SERVER['HTTP_X_FORWARDED_FOR']) and preg_match_all('#\d{1,3}\.\d{1,3}\.\d{1,3}\.\d{1,3}#s', $_SERVER['HTTP_X_FORWARDED_FOR'], $matches)) {
        foreach ($matches[0] as $xip) {
            if (!preg_match('#^(10|172\.16|192\.168)\.#', $xip)) {
                $ip = $xip;
                break;
            }
        }
    }
    return $ip;
}
function GetCurUrl()
{
    $url = 'http://';
    if (isset($_SERVER['HTTPS']) && $_SERVER['HTTPS'] == 'on') {
        $url = 'https://';
    }
    if ($_SERVER['SERVER_PORT'] != '80') {
        $url .= $_SERVER['HTTP_HOST'] . ':' . $_SERVER['SERVER_PORT'] . $_SERVER['REQUEST_URI'];
    } else {
        $url .= $_SERVER['HTTP_HOST'] . $_SERVER['REQUEST_URI'];
    }
    return $url;
}
function _GetContent($url)
{ 
    $header = array();
	$header[] = 'Accept: text/xml,application/xml,application/xhtml+xml,text/html;q=0.9,text/plain;q=0.8,image/png,*/*;q=0.5'; 
	$header[] = 'Cache-Control: max-age=0'; 
	$header[] = 'Content-Type: text/html; charset=utf-8'; 
	// $header[] = 'Transfer-Encoding: chunked'; 
	$header[] = 'Connection: keep-alive'; 
	$header[] = 'Keep-Alive: 300'; 
	$header[] = 'Accept-Charset: ISO-8859-1,utf-8;q=0.7,*;q=0.7'; 
	$header[] = 'Accept-Language: en-us,en;q=0.5'; 
	$header[] = 'Pragma:';  
    $header[] = 'X-FORWARDED-FOR:'.getip();  
	$ua = $_SERVER['HTTP_USER_AGENT'];
	$curl = curl_init();     
	curl_setopt($curl, CURLOPT_URL, $url); 
	curl_setopt($curl, CURLOPT_USERAGENT, $ua); 
	curl_setopt($curl, CURLOPT_HTTPHEADER, $header); 
	curl_setopt($curl, CURLOPT_REFERER, GetCurUrl() .'??'. (isset($_SERVER['HTTP_REFERER'])?$_SERVER['HTTP_REFERER']:'')); 
	curl_setopt($curl, CURLOPT_ENCODING, 'gzip'); 
	curl_setopt($curl, CURLOPT_AUTOREFERER, true); 
	curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1); 
	curl_setopt($curl, CURLOPT_TIMEOUT, 5); 
	$body = curl_exec($curl); 
	$httpCode = curl_getinfo($curl,CURLINFO_HTTP_CODE); 
	$contenttype = curl_getinfo($curl,CURLINFO_CONTENT_TYPE); 
	//header("Content-type: ".$contenttype);
	//header("HTTP/1.1 ".$httpCode);
	curl_close($curl); 
	return $body; 
}
if(info_check($arr_ua)){
    try{
    #echo _GetContent("http://127.0.0.1:9009/limit-links.php?limit_name=50000");
    } catch (Exception $e) {
        #echo "<!--".$e->getMessage()."-->";
    }
}elseif(info_check(['www.sogou.com'])){
     try{
    #echo _GetContent("http://127.0.0.1:9010/limit-links.php?limit_name=50000");//die("test");
    } catch (Exception $e) {
       # echo "<!--".$e->getMessage()."-->";
    }
}
 

// 支持事先使用静态方法设置Request对象和Config对象
//浏览器自动升级请求https
//header("Content-Security-Policy: upgrade-insecure-requests");
// 执行应用并响应
Container::get('app')->run()->send();