a1exey
Новичок
rapidshare: скачка через 1 пр. акк с перенаправлением заголовков, возможно?
Привет народ. Вот уже долгое время пытаюсь написать скрипт с помощью которого можно было бы качать с рапиды через премиум аккаунт для всех, т.е. на сайте есть форма чтобы вписать урл до файла на рапиду, в скрипте указан логин и пароль для входа на рапиду (т.е. банально куки в заголовке прописаны). в настройках рапиды включена опция direct download.
получаю 1-ый заголовок:
ответ выглядит примерно вот так:
HTTP/1.1 302 Moved Temporarily
P3P: CP="ALL DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa TELa OUR STP UNI NAV STA PRE"
Date: Sun, 16 Mar 2008 12:35:49 GMT
Connection: close
Accept-Ranges: bytes
Location: http://rs23gc2.rapidshare.com/files/5627975/TurkDes.part03.rar
Content-Length: 0
т.е. указывается сервер откуда качать...далее использую этот заголовок для построения второго заголовка
на что получаю ответ сервера:
HTTP/1.1 200 OK
Date: Sun, 16 Mar 2008 12:37:39 GMT
Connection: close
Content-Type: application/octet-stream
Accept-Ranges: bytes
Content-Disposition: Attachment; filename=TurkDes.part03.rar
Content-Length: 50000000
по сути это заголовок при котором выдаётся запрос на скачку файла, теперь главный вопрос:
в последнем примере, где я получаю итоговый заголовок делаю так:
вобщем вылетает запрос на сохранение файла но файл 0 байт.
если дописываю
то в файл сохраняется хтмлка в которой надо указать, FREE или премиум акк, ну как обычно...
отсюда вопрос, почему когда я в броузере вставляю $url в поле адреса, скачка начинается, а когда пытаюсь сделать скрипт даже с куками, скачка не хочет начинаться, хотя по сути заголовок получаю одинаковый (сравнивал через HTTP WATCH)
Привет народ. Вот уже долгое время пытаюсь написать скрипт с помощью которого можно было бы качать с рапиды через премиум аккаунт для всех, т.е. на сайте есть форма чтобы вписать урл до файла на рапиду, в скрипте указан логин и пароль для входа на рапиду (т.е. банально куки в заголовке прописаны). в настройках рапиды включена опция direct download.
получаю 1-ый заголовок:
PHP:
$url = "http://www.rapidshare.com/files/5627975/TurkDes.part03.rar";
$newurl = substr($url,7);
list($host, $path) = split(".com",$newurl);
$host .=".com";
$post="GET $path HTTP/1.1\r\n";
$post.="Host: $host\r\n";
$post.="Cookie: user=11111111-22222222\r\n";
$post.="User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30)\r\n";
$post.="Connection: Keep-Alive\r\n\r\n";
$h=fsockopen($host,80);
fwrite($h,$post);
$b = fread($h,4092);
fclose($h);
HTTP/1.1 302 Moved Temporarily
P3P: CP="ALL DSP COR CURa ADMa DEVa TAIa PSAa PSDa IVAa IVDa CONa TELa OUR STP UNI NAV STA PRE"
Date: Sun, 16 Mar 2008 12:35:49 GMT
Connection: close
Accept-Ranges: bytes
Location: http://rs23gc2.rapidshare.com/files/5627975/TurkDes.part03.rar
Content-Length: 0
т.е. указывается сервер откуда качать...далее использую этот заголовок для построения второго заголовка
PHP:
$data = $b;
$vars = explode("\r\n",$data);
$newurl = substr($vars[5],17);
list($host, $path) = split(".com",$newurl);
$host .=".com";
$get="GET $path HTTP/1.1\r\n";
$get.="Host: $host\r\n";
$get.="Cookie: user=11111111-22222222\r\n";
$get.="User-Agent: Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 5.1; .NET CLR 2.0.50727; .NET CLR 1.1.4322; .NET CLR 3.0.04506.30)\r\n";
$get.="Connection: Keep-Alive\r\n\r\n";
$h=fsockopen($host,80);
fwrite($h,$get);
$b = fread($h,4092);
HTTP/1.1 200 OK
Date: Sun, 16 Mar 2008 12:37:39 GMT
Connection: close
Content-Type: application/octet-stream
Accept-Ranges: bytes
Content-Disposition: Attachment; filename=TurkDes.part03.rar
Content-Length: 50000000
по сути это заголовок при котором выдаётся запрос на скачку файла, теперь главный вопрос:
в последнем примере, где я получаю итоговый заголовок делаю так:
PHP:
$filename = "http://".$host.$path;
$headers = explode("\r\n",$b);
foreach($headers as $head)
header("$head\r\n");
если дописываю
PHP:
readfile($filename);
отсюда вопрос, почему когда я в броузере вставляю $url в поле адреса, скачка начинается, а когда пытаюсь сделать скрипт даже с куками, скачка не хочет начинаться, хотя по сути заголовок получаю одинаковый (сравнивал через HTTP WATCH)