X   Сообщение сайта
(Сообщение закроется через 3 секунды)



 

Здравствуйте, гость (

| Вход | Регистрация )

Открыть тему
Тема закрыта
> PHP, CURL. POST - GET запросы Forbidden 403
spz
spz
Topic Starter сообщение 3.1.2012, 1:30; Ответить: spz
Сообщение #1


Здравствуйте уважаемые пользователи!
Пишу скрипт для автоматического скачивания музыкальных треков с одного известного музыкального сайта. Для этого использую библиотеку CURL.
C помощью сниффера отследил заголовки, передаваемые\получаемые серверу(ом):
http://www.zaycev.by/auth/signin.php

POST /auth/signin.php HTTP/1.1
Host: www.zaycev.by
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://www.zaycev.by/
Cookie: __utma=72410904.982912500.1314876904.1324801947.1325534692.10; __utmz=72410904.1314876904.1.1.utmcsr=forum.world-games.by|utmccn=(referral)|utmcmd=referral|utmcct=/index.php; __utmb=72410904.3.10.1325534692; __utmc=72410904
Content-Type: application/x-www-form-urlencoded
Content-Length: 39
j_username=********&j_password=********
HTTP/1.1 302 Moved Temporarily
Date: Mon, 02 Jan 2012 20:05:11 GMT
Connection: keep-alive
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=6634XDFen8lm2VfKPYz1.0; Domain=.zaycev.net; Path=/
Set-Cookie: JSESSIONID=7UbuEgg0C2lE07kxSfm6.0; Domain=.zaycev.net; Path=/
Set-Cookie: reme=c3B6MTk5MzoxMzI2NzQ0MzExOTE3OjdhNmU2NjNmZmZiODFiYWQxZDAwY2FmM2JiM2RlM2Y4; Domain=.zaycev.by; Expires=Mon, 16-Jan-2012 20:05:11 GMT; Path=/
Location: http://www.zaycev.by/index.shtml
Content-Length: 0
----------------------------------------------------------
http://www.zaycev.by/index.shtml

GET /index.shtml HTTP/1.1
Host: www.zaycev.by
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://www.zaycev.by/
Cookie: __utma=72410904.982912500.1314876904.1324801947.1325534692.10; __utmz=72410904.1314876904.1.1.utmcsr=forum.world-games.by|utmccn=(referral)|utmcmd=referral|utmcct=/index.php; __utmb=72410904.3.10.1325534692; __utmc=72410904; reme=c3B6MTk5MzoxMzI2NzQ0MzExOTE3OjdhNmU2NjNmZmZiODFiYWQxZDAwY2FmM2JiM2RlM2Y4

HTTP/1.1 200 OK
Date: Mon, 02 Jan 2012 20:05:12 GMT
Content-Type: text/html;charset=windows-1251
Transfer-Encoding: chunked
Connection: keep-alive
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=zOZoc6IuFgpzoPMatmEo.0; Domain=.zaycev.net; Path=/
Set-Cookie: JSESSIONID=EUIjG4UEkTA5cPe331fY.0; Domain=.zaycev.net; Path=/
Content-Language: ru-RU
Content-Encoding: gzip
----------------------------------------------------------

----------------------------------------------------------
http://www.zaycev.by/pages/9992/999294.shtml

GET /pages/9992/999294.shtml HTTP/1.1
Host: www.zaycev.by
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://www.zaycev.by/index.shtml
Cookie: __utma=72410904.982912500.1314876904.1324801947.1325534692.10; __utmz=72410904.1314876904.1.1.utmcsr=forum.world-games.by|utmccn=(referral)|utmcmd=referral|utmcct=/index.php; __utmb=72410904.4.10.1325534692; __utmc=72410904; reme=c3B6MTk5MzoxMzI2NzQ0MzExOTE3OjdhNmU2NjNmZmZiODFiYWQxZDAwY2FmM2JiM2RlM2Y4

HTTP/1.1 200 OK
Date: Mon, 02 Jan 2012 20:05:19 GMT
Content-Type: text/html;charset=windows-1251
Transfer-Encoding: chunked
Connection: keep-alive
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=9HrcpfQvDnto0ffmBSOm.0; Domain=.zaycev.net; Path=/
Set-Cookie: JSESSIONID=OARLAiPvBtGyJXQVDHEf.0; Domain=.zaycev.net; Path=/
Content-Language: ru-RU
Content-Encoding: gzip
----------------------------------------------------------

----------------------------------------------------------
http://www.zaycev.by/download.php?ass=Pitb...3&id=999294

GET /download.php?ass=Pitbull+%26+Chris+Brown_-_International+Love+(by+Pitbull+Dance+version).mp3&id=999294 HTTP/1.1
Host: www.zaycev.by
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://www.zaycev.by/pages/9992/999294.shtml
Cookie: __utma=72410904.982912500.1314876904.1324801947.1325534692.10; __utmz=72410904.1314876904.1.1.utmcsr=forum.world-games.by|utmccn=(referral)|utmcmd=referral|utmcct=/index.php; __utmb=72410904.5.10.1325534692; __utmc=72410904; reme=c3B6MTk5MzoxMzI2NzQ0MzExOTE3OjdhNmU2NjNmZmZiODFiYWQxZDAwY2FmM2JiM2RlM2Y4

HTTP/1.1 200 OK
Date: Mon, 02 Jan 2012 20:05:23 GMT
Content-Type: text/html;charset=windows-1251
Transfer-Encoding: chunked
Connection: keep-alive
Server: Apache-Coyote/1.1
Set-Cookie: JSESSIONID=Cwd3S1OQvAvWlvAY1u6I.0; Domain=.zaycev.net; Path=/
Set-Cookie: JSESSIONID=jOPFtEHmUxcfzzrNwa32.0; Domain=.zaycev.net; Path=/
Set-Cookie: ZAYCEVNETIDdl="H4sIAAAAAAAAAAEgAd/+5FF19FwhrG1qNmscvgiTBOoEVoIgyE2ggqQzIMtFXXwfc6T9m+lUM37irwA0ET0eyww6L0QVta2AmyL
1RxhSjYCgtmRyIEmQ4nPzUZLz15JnDcOzbKFTOcAbTg/NvrbUQs1fM/JmU/lIF1FCkj+ij/GQ14rvC9k+qf+HLRKHKRTlSNg1KrFpaRKDfuu1BZ2RvfPrdmIEZnkLO3fXEpJaR29vvFxdJpKDXQjTPt
T+U1JAYBiJGzjg6026ic6Q00gvcQ46YGIFzktdEef9p5ny3wIF3jYQ2cduQbXLnaxJphyBeYZK0Zy20n8
xbkHerZFwDSwFrMS2wH58Wcly9E6rH6TV9j1DnQG5rXyRQ7cU6tVY4jnQlTCSa3UiS1h6mbYestlQgCAB
AAA="; Version=1; Max-Age=600; Expires=Mon, 02-Jan-2012 20:15:23 GMT
Content-Language: ru-RU
Content-Encoding: gzip
----------------------------------------------------------

----------------------------------------------------------
http://dl.zaycev.by/0e32d0ec-8d3f-4c46-b01...nce_version.mp3

GET /0e32d0ec-8d3f-4c46-b012-edc200cfafd2/9992/999294/pitbull_and_chris_brown_-_international_love_by_pitbull_dance_version.mp3 HTTP/1.1
Host: dl.zaycev.by
User-Agent: Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0
Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3
Accept-Encoding: gzip, deflate
Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7
Connection: keep-alive
Referer: http://www.zaycev.by/download.php?ass=Pitb...3&id=999294
Cookie: __utma=72410904.982912500.1314876904.1324801947.1325534692.10; __utmz=72410904.1314876904.1.1.utmcsr=forum.world-games.by|utmccn=(referral)|utmcmd=referral|utmcct=/index.php; __utmb=72410904.6.10.1325534692; __utmc=72410904; reme=c3B6MTk5MzoxMzI2NzQ0MzExOTE3OjdhNmU2NjNmZmZiODFiYWQxZDAwY2FmM2JiM2RlM2Y4

HTTP/1.1 200 OK
Server: nginx/0.8.53
Date: Mon, 02 Jan 2012 20:05:25 GMT
Content-Type: audio/mpeg
Content-Length: 2012764
Last-Modified: Tue, 17 May 2011 06:31:43 GMT
Connection: keep-alive
Content-Disposition: attachment; filename=pitbull_and_chris_brown_-_international_love_by_pitbull_dance_version.mp3
Accept-Ranges: bytes
----------------------------------------------------------


Понял, что для получения заветной прямой ссылки на музыкальный файл, необходимо сначала произвести вход на сайт под своим логином и паролем, затем получить необходимые "печеньки":
[PHP]
$login = '**********';
$password = '*********';
$data = 'j_username='.$login.'&j_password='.$password;

$get = post('http://zaycev.by/auth/signin.php',$data,'htt://zaycev.net/login.php');

$headers = array(
'Host: www.zaycev.by',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
'Accept-Encoding: deflate',
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7',
'Connection: keep-alive'
);
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_URL, "http://www.zaycev.by/pages/9992/999294.shtml");
curl_setopt($ch, CURLOPT_REFERER, "http://www.zaycev.by/index.shtml");
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$answer = curl_exec($ch);
curl_close($ch);

$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0");
curl_setopt($ch, CURLOPT_URL,"http://www.zaycev.by/download.php?ass=Pitbull+%26+Chris+Brown_-_International+Love+(by+Pitbull+Dance+version).mp3&id=999294");
curl_setopt($ch, CURLOPT_REFERER, "http://www.zaycev.by/pages/9992/999294.shtml");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
$answer = curl_exec($ch);
$begin = strpos($answer,"<a href='") + 9;
$end = strpos($answer, ".mp3'>ссылку")+4;
$belen = $end - $begin;
$adrdownload = substr($answer, $begin, $belen);
curl_close($ch);

$headers = array(
'Host: dl.zaycev.by',
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3',
'Accept-Encoding: deflate',
'Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7',
'Connection: keep-alive'
);
$ch = curl_init();
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0");
curl_setopt($ch, CURLOPT_REFERER, "http://www.zaycev.by/download.php?ass=Pitbull+%26+Chris+Brown_-_International+Love+(by+Pitbull+Dance+version).mp3&id=999294");
curl_setopt($ch, CURLOPT_HTTPHEADER, $headers);
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($ch, CURLOPT_URL, $adrdownload);
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$result = curl_exec($ch);
if ($result)
{
header("Content-type: audio/mpeg");
header("Content-Length: 2012764");
header("Content-Disposition: attachment;filename=pitbull_and_chris_brown_-_international_love_by_pitbull_dance_version.mp3");
header("Accept-Ranges: bytes");
exit();
}
curl_close($ch);



function post($url,$post,$refer)
{
$ch = curl_init($url);
curl_setopt($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (Windows NT 5.1; rv:5.0) Gecko/20100101 Firefox/5.0");
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
curl_setopt($ch, CURLOPT_REFERER, $refer);
curl_setopt($ch, CURLOPT_COOKIEFILE, "my_cookies.txt");
curl_setopt($ch, CURLOPT_COOKIEJAR, "my_cookies.txt");
curl_setopt($ch, CURLOPT_FOLLOWLOCATION, true);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, true);
$answer = curl_exec($ch);
curl_close($ch);
return $answer;
}
[/PHP]

В ответ сервер выдает Forbidden 403. Бьюсь над данным скриптом уже недели две. Вот решил обратиться к вам за помощью. Буду рад любых ее проявлениях...
0
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
DoctorX
DoctorX
сообщение 3.1.2012, 10:13; Ответить: DoctorX
Сообщение #2


ванимательно сравнивайте то что передаёте вы и то что передаёт браузер. ищите разницу.


--------------------
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
ARAGAS
ARAGAS
сообщение 4.1.2012, 16:15; Ответить: ARAGAS
Сообщение #3


[PHP]$get = post('http://zaycev.by/auth/signin.php',$data,'htt://zaycev.net/login.php');[/PHP]
не "htt", a "http"
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
spz
spz
Topic Starter сообщение 5.1.2012, 1:41; Ответить: spz
Сообщение #4


(ARAGAS @ 4.1.2012, 19:15) *
[PHP]$get = post('http://zaycev.by/auth/signin.php',$data,'htt://zaycev.net/login.php');[/PHP]
не "htt", a "http"


Спасибо большое за найденную ошибку, но она была не критичной(реферер можно было и не передавать, как оказалось :)).

Добавил недостающие куки в заголовки, в итоге выдает: Скачивание доступно только для пользователей Беларуси . :shout:

При использовании прокси-пиринга такая же ерунда...
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
spz
spz
Topic Starter сообщение 7.1.2012, 22:46; Ответить: spz
Сообщение #5


Всем опять привет! Полагаю, что все беды из-за того, что сервер, музыкального сайте "не пускает" нас к файлу из-за того, что думает, что мы коннектимся к нему из другой страны (Скачивание доступно только для пользователей Беларуси), хотя это не так. Возможно там идет проверка по ip или еще что-то. Можно ли как-то обойти это ограничение?

Замечание модератора:
Эта тема была закрыта автоматически ввиду отсутствия активности в ней на протяжении 100+ дней.
Если Вы считаете ее актуальной и хотите оставить сообщение, то воспользуйтесь кнопкой
или обратитесь к любому из модераторов.
Вернуться в начало страницы
 
Ответить с цитированием данного сообщения
Открыть тему
Тема закрыта
2 чел. читают эту тему (гостей: 2, скрытых пользователей: 0)
Пользователей: 0


Свернуть

> Похожие темы

  Тема Ответов Автор Просмотров Последний ответ
Открытая тема (нет новых ответов) СОЗДАНИЕ : / САЙтЫ / ЛЕНДЫ / БОТЫ ТГ / ВАЙТЫ / КРЕО / СОФТЫ / ДИЗАЙН [PHP, JS, HTML/CSS] и другое
5 CULA 3293 19.12.2023, 18:55
автор: CULA
Открытая тема (нет новых ответов) Услуги по созданию и доработке скриптов PHP, MySQL, JavaScript, jQuery
Разработка сайтов и сервисов под-ключ
0 alexey 1171 24.11.2023, 14:46
автор: alexey
Горячая тема (нет новых ответов) Тема имеет прикрепленные файлыВеб-разработка (HTML5, CSS3, JavaScript, jQuery, Ajax, PHP)
56 qpPeW 44767 19.7.2023, 10:03
автор: qpPeW
Открытая тема (нет новых ответов) Есть спецы по php/laravel?
3 Mixatraider 1856 26.5.2023, 20:48
автор: Mixatraider
Открытая тема (нет новых ответов) Опытный PHP\Python разработчик в поиске интересных задач
6 daikzlex 3361 25.5.2023, 13:55
автор: daikzlex


 



RSS Текстовая версия Сейчас: 29.3.2024, 13:51
Дизайн