Advertisement
Not a member of Pastebin yet?
Sign Up,
it unlocks many cool features!
- <?php
- function gurl($es,$bf,$af){$es="\xFF".$es;$sp1=strpos($es,$bf);
- $fe_s=substr($es,$sp1+strlen($bf));$sp2=strpos($fe_s,$af);
- if($sp1&&$sp2)return substr($fe_s,0,$sp2);else return '';
- }
- function gurli($es,$bf,$af){$es="\xFF".$es;
- $sp1=stripos($es,$bf);$fe_s=substr($es,$sp1+strlen($bf));
- $sp2=stripos($fe_s,$af);
- if($sp1&&$sp2)return substr($fe_s,0,$sp2);else return '';
- }
- function cget($lvn){if(isset($_GET[$lvn]))return $_GET[$lvn];else return '';}
- function i_exp($d1){
- return strtotime($d1)<(time()-10);
- }
- function couki($htp1){
- global $cukie;
- $cukis0=preg_split("/Set-Cookie: /i", $htp1[0]);
- $clen=count($cukis0);
- $r1=1;
- while($r1 < $clen){
- $buf=$cukis0[$r1];
- $buf=substr($buf, 0, strpos($buf, "\r\n"));
- $Exp=gurli($buf, "Expires=", ";");
- if((!strlen($Exp))||(!i_exp($Exp))){
- $domain=gurli($buf, "Domain=", ";");
- if(!strlen($domain))
- $domain=gurl($htp1[2], "://", "/");
- $cukie[$domain][substr($buf,0,strpos($buf, "="))]=[gurl($buf, "=", ";"), gurli($buf, "Path=", ";"), $Exp];
- }
- $r1++;
- }
- }
- function if_cuk($loc0){
- global $cukie;
- $vl0=gurl($loc0, "://", "/");
- $cke1="";
- $ca_01=[];
- if(isset($cukie[$vl0]))
- $ca_01=$cukie[$vl0];
- $hoxt=".".substr($vl0, strpos($vl0, ".")+1);
- if(isset($cukie[$hoxt]))
- $ca_01=array_merge($ca_01, ($cukie[$hoxt]));
- foreach($ca_01 as $name => $value){
- $iexp=i_exp($value[2]);
- if((!$iexp || $value[2]=="") && (strpos($loc0, $vl0.$value[1]) || strlen($value[1]) < 2)){
- if(strlen($cke1))
- $cke1.="; ";
- $cke1.=$name."=".$value[0];
- }elseif($iexp){
- if(isset($cukie[$vl0][$name]))
- unset($cukie[$vl0][$name]);
- else
- unset($cukie[$hoxt][$name]);
- }
- }
- return $cke1;
- }
- function bgn($a,$s){return strpos("\xFF".$a,$s)==1;}
- $SVR=$_SERVER;
- $uri=$SVR['REQUEST_URI'];
- if((!($e_=strpos($uri,'.php/')))||(!strlen($url2=substr($uri,$e_+5))))exit('No url found.');
- $yce=!cget("nc");
- $hdrs=["host: "+gurl($url2,"://","/")];
- $A='accept';
- $phdr=" ,user-agent,origin,referer,$A,$A-encoding,$A-language,host,";
- $nope=' ,host,';
- header('Access-Control-Allow-Origin: *');
- if(isset($SVR['HTTP_X_NOPE']))$nope.=strtolower($SVR['HTTP_X_NOPE']).',';
- foreach($SVR as $N=>$v){
- if(substr($N,0,5)=="HTTP_"){ $n=str_replace("_","-",strtolower(substr($N,5)));
- if(substr($n,0,4)=="x-a-"&&strlen($n)>4) $hdrs[substr($n,4)]=$v;
- elseif(!(isset($hdrs[$n])||strpos($nope,",$n,")||($n=="x-nope"))) $hdrs[$n]=$v;
- }
- }
- if(!($bdy = file_get_contents('php://input')))$bdy='';
- header('X-rbdy: '.($bl=strlen($bdy)));
- if($bl&&bgn($bdy,'HL: ')){
- $HL=substr($bdy,4,$fle=strpos($bdy,"\r\n"))*1;
- $hds=substr($bdy,$fle+2,$HL);
- if(strlen($hds)){$ha0=explode("\r\n",$hds);
- foreach($ha0 as $H){
- if($cp=strpos($H,":")){$hn=substr($H,0,$cp);
- array_push($hdrs,$H);
- }
- }
- }
- $bdy=substr($bdy,$fle+2+$HL);
- $bl=strlen($bdy);
- }
- $rdr=0;$fhed='';$rMeh=$SVR['REQUEST_METHOD'];
- BgnC:
- $g1=curl_init();
- curl_setopt($g1,CURLOPT_URL,$url2);
- curl_setopt($g1,CURLOPT_SSL_VERIFYPEER,!1);
- curl_setopt($g1,CURLOPT_RETURNTRANSFER,!0);
- curl_setopt($g1,CURLOPT_VERBOSE,!0);
- if($rMeh=="GET") curl_setopt($g1,CURLOPT_HTTPGET,!0);
- elseif($rMeh!="POST") curl_setopt($g1, CURLOPT_CUSTOMREQUEST, $rMeh);
- if($bl) curl_setopt($g1, CURLOPT_POSTFIELDS, $bdy);
- curl_setopt($g1, CURLOPT_COOKIESESSION, !0);
- curl_setopt($g1, CURLOPT_BINARYTRANSFER, !0);
- curl_setopt($g1, CURLOPT_HEADER, !0);
- if($yce){if($cuk1=if_cuk($url2)) if(isset($hdrs["cookie"])) $hdrs["cookie"].="; ".$cuk1; else $hdrs["cookie"]=$cuk1;}
- $hdrs_=[]; foreach($hdrs as $n_=>$v_) array_push($hdrs_,$n_.": ".$v_);
- curl_setopt($g1, CURLOPT_HTTPHEADER, $hdrs_);
- curl_setopt($g1,CURLOPT_ENCODING,"gzip");
- $rdat1=curl_exec($g1);
- $hl1=curl_getinfo($g1, CURLINFO_HEADER_SIZE);
- curl_close($g1);
- $rhed1=substr($rdat1, 0, $hl1);
- $b0dy=substr($rdat1, $hl1);
- if($yce)couki([$rhed1,0,$url2."/"]);
- $bdy="";
- $rMeh="GET";
- $fhed.=$rMeh." ".$url2."\r\n".$rhed1;
- if((!cget("df"))&&strlen($p=gurli($rhed1,"location: ","\r\n"))){
- $rdr++;
- if($rdr<5){
- $rci=strpos($r=$url2,"://");$ptc=substr($r,0,$rci);$afptc=substr($r,$rci+3);if($sp_=strpos($afptc,"/"))$host=substr($afptc,0,$sp_);else $host=$afptc;$domn=$ptc."://".$host;$qi=strpos($r,"?");
- if(bgn($p,"http://")||bgn($p,"https://")) $res=$p;
- elseif(bgn($p,"?")) $res=(($qi+1)?substr($r,0,$qi):$r).$p;
- elseif($p[0]=="/") $res=$domn.$p;
- elseif(bgn($p,"://")) $res=$ptc.$p;
- else{ if($r[strlen($r)-1]!="/") $r=substr($r,0,strrpos($r,"/")+1);
- while(bgn($p,"../")){if($r[strlen($r)-1]=="/")$r=substr($r,0,strlen($r)-2);$p=substr($p,3);if(strlen($r)>(strlen($domn)+3))$r=substr($r,0,strrpos($r,"/")+1);}
- $res=$r.$p;
- }
- $hdrs2=[];
- header("X-rdr-".$rdr.": ".($url2=$res));
- foreach($hdrs as $_n=>$_v){if(strpos($phdr,",".$_n.","))$hdrs2[$_n]=$_v;}
- $hdrs=$hdrs2;
- goto BgnC;
- }else exit("Too many rederects.\r\n".$fhed);
- }
- echo("HL: ".strlen($fhed)."\r\n".$fhed.$b0dy);
- ?>
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement