Как сервер распознает, что это не человек? - PullRequest
0 голосов
/ 29 января 2011

Мне нужно получить файл flv с filmix.net/uzhasy/14482-tayna-bermudskogo-treugolnika-the-bermuda-triangle-1987.html Когда я захожу на сервер через браузер, ссылка на.FLV-файл, который я нашел, и он может сохранить файл.

И когда я делаю скрипт php, ссылка не работает.

video-10.filmix.net / s / 37d6764a8f8e43bd754f53431c2e79ce / _02/The.Bermuda.Triangle.1978.DVDRip.flv - работа video-10.filmix.net/s/d93d70a78428816b714882c678c39230/_02/The.Bermuda.Triangle.1978.DVDRip.flv - не работает.

Iпробовал так:

$viart_xml = fsockopen("filmix.net", 80, $errno, $errstr, 12); 

   fputs($viart_xml, "GET /uzhasy/14482-tayna-bermudskogo-treugolnika-the-bermuda-triangle-1987.html HTTP/1.1\r\n"); 
   fputs($viart_xml, "Host: filmix.net\r\n"); 
  fputs($viart_xml, "User-Agent: Mozilla/5.0 (Windows; U; Windows NT 6.1; ru; rv:1.9.2.13) Gecko/20101203 Firefox/3.6.13\r\n\r\n"); 
fputs($viart_xml, "Accept-Language: ru-ru,ru;q=0.8,en-us;q=0.5,en;q=0.3\r\n");
fputs($viart_xml, "Accept-Encoding: gzip,deflate\r\n");
  fputs($viart_xml, "Accept-Charset: windows-1251,utf-8;q=0.7,*;q=0.7\r\n");
  fputs($viart_xml, "Keep-Alive: 115\r\n");
  fputs($viart_xml, "Connection: keep-alive\r\n\r\n");


if (!$viart_xml) { 
   echo "$errstr ($errno)<br />\n"; 
} else { 
   $content = ""; 
   while (!feof($viart_xml)) { 
       $content .= fgets($viart_xml, 1000000); 

   } 
   fclose($viart_xml); 
   echo $content; 

end:

function download_pretending($url,$user_agent='Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0)') 
{ 
$ch = curl_init(); 
curl_setopt ($ch, CURLOPT_URL, $url); 
curl_setopt ($ch, CURLOPT_USERAGENT, $user_agent); 
curl_setopt ($ch, CURLOPT_HEADER, 0); 
curl_setopt ($ch, CURLOPT_RETURNTRANSFER, 1); 
curl_setopt ($ch, CURLOPT_REFERER, 'www.yandex.ru');
$result = curl_exec ($ch); 
curl_close ($ch); 
return $result; 

почему ссылки разные?

Ответы [ 3 ]

1 голос
/ 29 января 2011

Вы заметили эти шестнадцатеричные коды?

37d6764a8f8e43bd754f53431c2e79ce
d93d70a78428816b714882c678c39230

На мой взгляд, с помощью этого очень быстрого реверс-инжиниринга это какие-то одноразовые управляющие коды.

Эти коды могут (я сказал, может, потому что я не знаю)

  • Установить ограничение на 1 скачивание файла (при обновлении страницы генерируется новый код)
  • Будьте привязаны к своему IP (так что если вы запускаете PHP с другого сервера, они обнаруживают, что вы обманываете)
  • Будьте привязаны к сеансу и / или некоторым файлам cookie, которые вы должны имитировать в своем граббере.

Мой ответ

что с помощью своего кода вы не можете сломать эту защиту загрузки, потому что хотя бы одна из вышеуказанных причин - или более неизвестна - но это не невозможно Я не знаю, как «этично» помочь вам злоупотреблять загрузками (наверняка поставщик контента недоволен, если вы не смотрите рекламу на веб-странице или не можете распространять контент).

Кстати, многие разработчики ежедневно нарушают каждую защиту FLV, которую обеспечивает YouTube, и именно поэтому YT загрузчики существуют . То же самое относится и к вам, просто приложите больше усилий и используйте больше Wireshark;)

0 голосов
/ 13 августа 2013

Установить ограничение на 1 скачивание файла (когда вы обновляете страницу, генерируется новый код). Привязать к вашему IP-адресу (поэтому, если вы запускаете PHP с другого сервера, он обнаруживает, что вы обманываете) Привязывается к сеансуи / или некоторые куки, которые вы должны имитировать в своем граббере.Использовать http grabber http://vidozon.com

0 голосов
/ 29 января 2011

У вас нет информации о сеансе.Вероятно, будет набор файлов cookie, который блокирует эту глубокую ссылку на файлы FLV.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...