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

Warning: Invalid argument supplied for foreach() in /home/admin/public_html/forum/topic.php on line 737
Форумы портала PHP.SU :: Обход referer средствами curl или как-то иначе ...

 PHP.SU

Программирование на PHP, MySQL и другие веб-технологии
PHP.SU Портал     На главную страницу форума Главная     Помощь Помощь     Поиск Поиск     Поиск Яндекс Поиск Яндекс     Вакансии  Пользователи Пользователи


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

> Описание: Помогите, по-возможности!
bt_corp
Отправлено: 12 Мая, 2013 - 01:35:46
Post Id



Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




Существует некий... не слабо защищенный буржуйский видео туб который содержит ссылки на .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


-----
Программист, это - такой человек, который сначала много думает, чтобы потом ничего не делать!
 
 Top
EuGen Администратор
Отправлено: 12 Мая, 2013 - 02:05:25
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




Вы уверены, что дело только в этом? Браузер отсылает множество заголовков. Узнать, на что именно реагирует удалённый сервер можно, посмотрев полный список HTTP-Request заголовков (например, для FF существует LiveHTTPHeaders) - и, убирая необязательные по одному, выяснить, какой (какие) проверяется.


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
bt_corp
Отправлено: 12 Мая, 2013 - 02:51:18
Post Id



Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




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.  


-----
Программист, это - такой человек, который сначала много думает, чтобы потом ничего не делать!
 
 Top
EuGen Администратор
Отправлено: 12 Мая, 2013 - 03:12:50
Post Id


Профессионал


Покинул форум
Сообщений всего: 9095
Дата рег-ции: Июнь 2007  
Откуда: Berlin


Помог: 707 раз(а)




bt_corp пишет:
и там убирал одно за другим... ему ничего не нужно из переданного

То есть Вы делали запросы, убирая по одному эти заголовки, и получали корректный ответ? Если да - то как Вы убирали заголовки? (если через curl - то Вы нашли свой ответ, в противном случае следует это сделать именно в curl через curl_setopt)


-----
Есть в мире две бесконечные вещи - это Вселенная и человеческая глупость. Но насчет первой .. я не уверен.
 
 Top
bt_corp
Отправлено: 12 Мая, 2013 - 11:45:55
Post Id



Гость


Покинул форум
Сообщений всего: 71
Дата рег-ции: Май 2010  


Помог: 0 раз(а)




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");

(Отредактировано автором: 12 Мая, 2013 - 13:17:23)



-----
Программист, это - такой человек, который сначала много думает, чтобы потом ничего не делать!
 
 Top
Мелкий Супермодератор
Отправлено: 12 Мая, 2013 - 14:11:23
Post Id



Активный участник


Покинул форум
Сообщений всего: 11926
Дата рег-ции: Июль 2009  
Откуда: Россия, Санкт-Петербург


Помог: 618 раз(а)




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

Нереализуемо.
Тема закрыта!


-----
PostgreSQL DBA
 
 Top
Страниц (1): [1]
Сейчас эту тему просматривают: 0 (гостей: 0, зарегистрированных: 0)
« Работа с сетью »


Все гости форума могут просматривать этот раздел.
Только зарегистрированные пользователи могут создавать новые темы в этом разделе.
Только зарегистрированные пользователи могут отвечать на сообщения в этом разделе.
 



Powered by PHP  Powered By MySQL  Powered by Nginx  Valid CSS  RSS

 
Powered by ExBB FM 1.0 RC1. InvisionExBB