<?php
# FMGET ver. 1.1
# © Alex Extend, 2008
#
# Данная программа является свободным программным обеспечением. Вы вправе
# распространять ее и/или модифицировать в соответствии с условиями версии 2 либо
# по вашему выбору с условиями более поздней версии Стандартной Общественной
# Лицензии GNU, опубликованной Free Software Foundation.
#
# Мы распространяем данную программу в надежде на то, что она будет вам полезной
# однако НЕ ПРЕДОСТАВЛЯЕМ НА НЕЕ НИКАКИХ ГАРАНТИЙ, в том числе ГАРАНТИИ ТОВАРНОГО
# СОСТОЯНИЯ ПРИ ПРОДАЖЕ и ПРИГОДНОСТИ ДЛЯ ИСПОЛЬЗОВАНИЯ В КОНКРЕТНЫХ ЦЕЛЯХ. Для
# получения более подробной информации ознакомьтесь со Стандартной Общественной
# Лицензией GNU.
error_reporting(E_ALL);
include ('conf.php');
$host=str_replace(".$pdomain", "", $_SERVER['HTTP_HOST']);
$uri=preg_replace('|^http://([^/]+)|', '', $_SERVER['REQUEST_URI']);
$fp=fsockopen($host, 80, $errno, $errstr, 30);
if (!$fp) die("$host $errstr");
$req="$_SERVER[REQUEST_METHOD] $uri HTTP/1.1\r\n";
$req.="Host: $host\r\n";
if (isset($_SERVER['HTTP_USER_AGENT'])) $req.="User-Agent: $_SERVER[HTTP_USER_AGENT]\r\n";
if (isset($_SERVER['HTTP_ACCEPT'])) $req.="Accept: $_SERVER[HTTP_ACCEPT]\r\n";
if (isset($_SERVER['HTTP_ACCEPT_LANGUAGE'])) $req.="Accept-Language: $_SERVER[HTTP_ACCEPT_LANGUAGE]\r\n";
if (isset($_SERVER['HTTP_ACCEPT_CHARSET'])) $req.="Accept-Charset: $_SERVER[HTTP_ACCEPT_CHARSET]\r\n";
if (isset($_SERVER['HTTP_COOKIE'])) $req.="Cookie: $_SERVER[HTTP_COOKIE]\r\n";
$postdata="";
if ($_SERVER['REQUEST_METHOD']=='POST') {
foreach ($_POST as $n=>$v) {
$postdata.="$n=".urlencode($v)."&";
}
$req.="Content-Type: application/x-www-form-urlencoded\r\n";
$req.="Content-Length: ".strlen($postdata)."\r\n";
}
$req.="Connection: close\r\n\r\n$postdata";
fwrite($fp, $req);
$head="";
while (!strstr($head, "\r\n\r\n")) {
$head.=fread($fp, 1);
}
if (preg_match('|^Content\-Length:\s*(\d+)\s*$|m', $head, $mc)) {
$cl=$mc[1];
if ($cl>1024*1024) {
$iweb['url']="http://$host$uri";
$iweb['size']=$cl;
$iweb['HTTP_USER_AGENT']=@$_SERVER['HTTP_USER_AGENT'];
$iweb['HTTP_ACCEPT']=@$_SERVER['HTTP_ACCEPT'];
$iweb['HTTP_ACCEPT_LANGUAGE']=@$_SERVER['HTTP_ACCEPT_LANGUAGE'];
$iweb['HTTP_ACCEPT_CHARSET']=@$_SERVER['HTTP_ACCEPT_CHARSET'];
$iweb['HTTP_COOKIE']=@$_SERVER['HTTP_COOKIE'];
$tmp=time().rand(10, 99);
file_put_contents("$basedir/users/tmp$tmp.txt", serialize($iweb));
header("Location: http://$pdomain/profile.php?mode=ok&tmp=$tmp");
exit;
}
}
$body="";
while (!feof($fp)) {
$body.=fread($fp, 1);
}
fclose($fp);
$head=preg_replace('|http://([a-z0-9\-\_\.]+)/|i', "http://$1.$pdomain/", $head);
$head=str_replace("$host.$pdomain", $host, $head);
$head=str_replace($host, "$host.$pdomain", $head);
$body=preg_replace('|http://([a-z0-9\-\_\.]+)/|i', "http://$1.$pdomain/", $body);
$body=str_replace("$host.$pdomain", $host, $body);
$body=str_replace($host, "$host.$pdomain", $body);
$body=str_replace('<title>', '<title>FMGET proxy: ', $body);
$body=str_replace('<TITLE>', '<TITLE>FMGET proxy: ', $body);
$ha=explode("\r\n", $head);
$hs=array();
foreach ($ha as $h) {
$hb=explode(':', $h, 2);
if (!empty($hb[1])) $hs[trim($hb[0])]=trim($hb[1]);
}
if (isset($hs['Content-Type'])) header("Content-Type: ".$hs['Content-Type']);
if (isset($hs['Set-Cookie'])) header("Set-Cookie: ".$hs['Set-Cookie']);
if (isset($hs['Location'])) header("Location: ".$hs['Location']);
header("Cache-Control: no-cache,must-revalidate");
header("Pragma: no-cache");
echo $body;
?>