Warning: Cannot use a scalar value as an array in /home/admin/public_html/forum/include/fm.class.php on line 757

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/include/fm.class.php on line 770
Форумы портала PHP.SU :: Версия для печати :: Обход referer средствами curl или как-то иначе ...
Форумы портала PHP.SU » » Работа с сетью » Обход referer средствами curl или как-то иначе ...

Страниц (1): [1]
 

1. bt_corp - 12 Мая, 2013 - 01:35:46 - перейти к сообщению
Существует некий... не слабо защищенный буржуйский видео туб который содержит ссылки на .mp4 файлы и ясное дело злобно защищает свое добро от хотлинка... Хм

По логике вещей использую CURL для подстановки HTTP_REFERER
Существует ссылка: "http://4.xhcdn.com/key=0qDu7AhXmhs,end=1368324204/data=1534875403/speed=375k/1925672_redhead_casting.mp4"
на видео файл которую в будущем нужно вставить в плеер для воспроизведения...

Если скопировать ее и тупо вставить в адресную строку то нужный видео файл успешно загружаеться ... Но если создать ссылку на этот файл или же просто вставить ее в плеер то их сервер начинает грузить заглушку "out.flv" заключаю что дело тут в HTTP_REFERER
Но не понимаю как-так подставить чтобы ссылка работала коректно в плеере...

Помогите, по-возможности! Жду идей! Застрял, уже седьмой час ковыряю! Растерялся

Думаю что нужен CURL, Для подстановки использовал
CODE (htmlphp):
скопировать код в буфер обмена
  1. curl_setopt($ch, CURLOPT_REFERER, "http://site.com"); // замена HTTP_REFERER
2. EuGen - 12 Мая, 2013 - 02:05:25 - перейти к сообщению
Вы уверены, что дело только в этом? Браузер отсылает множество заголовков. Узнать, на что именно реагирует удалённый сервер можно, посмотрев полный список HTTP-Request заголовков (например, для FF существует LiveHTTPHeaders) - и, убирая необязательные по одному, выяснить, какой (какие) проверяется.
3. bt_corp - 12 Мая, 2013 - 02:51:18 - перейти к сообщению
EuGen пишет:
Вы уверены, что дело только в этом? Браузер отсылает множество заголовков. Узнать, на что именно реагирует удалённый сервер можно, посмотрев полный список HTTP-Request заголовков (например, для FF существует LiveHTTPHeaders) - и, убирая необязательные по одному, выяснить, какой (какие) проверяется.


Установил LiveHTTPHeaders для FF и там убирал одно за другим... ему ничего не нужно из переданного браузером кроме Host: 192.96.200.102
вот то что показал LiveHTTPHeaders

Не шарю что делать дальше ? Однако

CODE (text):
скопировать код в буфер обмена
  1. http://192.96.200.102/key=9SX64PxdRVY,end=1368324204/data=1534875403/reftag=5412162/buffer=3M/speed=375000/1/xh/1/1925672_redhead_casting.mp4
  2.  
  3. GET /key=9SX64PxdRVY,end=1368324204/data=1534875403/reftag=5412162/buffer=3M/speed=375000/1/xh/1/1925672_redhead_casting.mp4 HTTP/1.1
  4. Host: 192.96.200.102
  5. User-Agent: Mozilla/5.0 (Windows NT 6.1; WOW64; rv:20.0) Gecko/20100101 Firefox/20.0
  6. Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8
  7. Accept-Language: uk,ru;q=0.8,en-us;q=0.5,en;q=0.3
  8. Accept-Encoding: gzip, deflate
  9. Connection: keep-alive
  10.  
  11. HTTP/1.1 200 OK
  12. Server: nginx/1.4.1
  13. Date: Sat, 11 May 2013 23:37:49 GMT
  14. Content-Type: video/mp4
  15. Content-Length: 200411596
  16. Last-Modified: Sat, 11 May 2013 17:59:50 GMT
  17. Connection: keep-alive
  18. Etag: "518e8716-bf209cc"
  19. Expires: Sat, 11 May 2013 23:57:49 GMT
  20. Cache-Control: max-age=1200
  21. Accept-Ranges: bytes
  22. ----------------------------------------------------------
  23.  
4. EuGen - 12 Мая, 2013 - 03:12:50 - перейти к сообщению
bt_corp пишет:
и там убирал одно за другим... ему ничего не нужно из переданного

То есть Вы делали запросы, убирая по одному эти заголовки, и получали корректный ответ? Если да - то как Вы убирали заголовки? (если через curl - то Вы нашли свой ответ, в противном случае следует это сделать именно в curl через curl_setopt)
5. bt_corp - 12 Мая, 2013 - 11:45:55 - перейти к сообщению
EuGen пишет:
Следует это сделать именно в curl через curl_setopt


Я понимаю что надо через CURL но не могу понять как открыть этот файл...

Можно пример как сделать чтобы открылся заданий файл по ссылке...
Мне надо чтобы файл прокачивался не через мой сервер а напрямую к клиенту!


Может как-то через fopen();
Помогите по-возможности!

Делаю пока так

PHP:
скопировать код в буфер обмена
  1. function dl_file_curl($url){
  2.        
  3.         $ch = curl_init();
  4.         curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 30);
  5.         curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  6.         curl_setopt($ch, CURLOPT_URL, $url);
  7.         curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1); // поддержка редиректа
  8.         curl_setopt($ch, CURLOPT_RETURNTRANSFER,true);
  9.         curl_setopt($ch, CURLOPT_REFERER, "http://site.com"); // реферер
  10.         $output = curl_exec($ch);
  11.         curl_close($ch);
  12.        
  13.         header("Content-Type: video/mp4");
  14.         header("Content-disposition: attachment; filename=$output");
  15.        
  16.         return $output;
  17. }
  18.  
  19. echo dl_file_curl("http://4.xhcdn.com/key=orWMhytCMKc,end=1368362556/data=1534875403/speed=375k/1925672_redhead_casting.mp4");
6. Мелкий - 12 Мая, 2013 - 14:11:23 - перейти к сообщению
bt_corp пишет:
Мне надо чтобы файл прокачивался не через мой сервер а напрямую к клиенту!

Нереализуемо.

 

Powered by ExBB FM 1.0 RC1