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 :: Получить реальную ссылку на файл

 PHP.SU

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


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

> Без описания
563434
Отправлено: 28 Февраля, 2016 - 12:39:40
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Авг. 2009  


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




Здравствуйте!

Не могу найти решения по получению реальной ссылки на файл из редиректной, т.е. например, есть ссылки вида:
avg.com/ru-ru/thank-you?product=avf&build=avf-free
foxmail.com/win/download

Это непрямые ссылки на файлы, но при их открытии браузер начинает загружать реальные exe-файлы.

Понятно, что какой-нибудь менеджер закачки получит реальные ссылки, но хотелось бы сделать функцию на php, которая будет их получать...

Возможно ли такое реализовать?
Пробовал с CURL опыты проводить, ничего не вышло, может параметры недонастроил...
Пробовал get_headers - получает заголовок, но там нет прямых ссылок...

Для пробы посмотрел плагином http Spy заголовки по адресу:
foxmail.com/win/download
Там есть ссылка: dldir1.qq.com/foxmail/windows/fm 727chb26_build_setup.exe

Может есть какое-то простое и изящное решение, чтобы получать реальную ссылку через php?
 
 Top
andrewkard
Отправлено: 29 Февраля, 2016 - 01:08:59
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


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




563434 пишет:
но хотелось бы сделать функцию на php, которая будет их получать

сделать то же, что будет делать браузер, т.е. отсылать такой же запрос, если это возможно...
 
 Top
563434
Отправлено: 29 Февраля, 2016 - 12:12:53
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Авг. 2009  


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




[quote=andrewkard][/quote]
andrewkard пишет:
сделать то же, что будет делать браузер, т.е. отсылать такой же запрос, если это возможно...

На словах все просто...хотел найти примеры кода...
 
 Top
andrewkard
Отправлено: 29 Февраля, 2016 - 12:19:09
Post Id


Участник


Покинул форум
Сообщений всего: 1372
Дата рег-ции: Нояб. 2014  


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




563434 пишет:
хотел найти примеры кода

http://php.net/manual/ru/book.curl.php
Открываем вкладку Сеть(Network) в консоли и смотрим, изучаем.
 
 Top
563434
Отправлено: 29 Февраля, 2016 - 12:58:10
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Авг. 2009  


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




Вот консоль что показывает:
Resource interpreted as Document but transferred with MIME type application/octet-stream: "http://dldir1.qq.com/foxmail/windows/fm727chb26_build_setup.exe".

Не понимаю...а CURL выдает заголовок:
Array ( [url] => http://foxmail[dot]com/win/download [content_type] => text/html [http_code] => 206 [header_size] => 312 [request_size] => 198 [filetime] => -1 [ssl_verify_result] => 0 [redirect_count] => 0 [total_time] => 3.515582 [namelookup_time] => 0.064379 [connect_time] => 0.286681 [pretransfer_time] => 0.286754 [size_upload] => 0 [size_download] => 236 [speed_download] => 67 [speed_upload] => 0 [download_content_length] => 236 [upload_content_length] => 0 [starttransfer_time] => 3.515511 [redirect_time] => 0 [request_header] => GET /win/download HTTP/1.1 Range: bytes=1-300 User-Agent: Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36 Host: foxmail.com Accept: */* )


Вот код:
CODE (htmlphp):
скопировать код в буфер обмена
  1. $url = 'http://foxmail.com/win/download';
  2.        
  3.  
  4.                 $ch = curl_init($url);
  5.                 //curl_setopt ($ch, CURLOPT_REFERER, $url);
  6.                 // не проверять SSL сертификат
  7.                 //curl_setopt ($ch, CURLOPT_SSL_VERIFYPEER, 0);
  8.                 // не проверять Host SSL сертификата
  9.                 //curl_setopt ($ch, CURLOPT_SSL_VERIFYHOST, 0);
  10.                 // это необходимо, чтобы cURL не высылал заголовок на ожидание
  11.                 curl_setopt ($ch, CURLOPT_HTTPHEADER, array('Expect:'));
  12.  
  13.                 curl_setopt($ch, CURLOPT_HEADER, 1);
  14.                 curl_setopt($ch, CURLINFO_HEADER_OUT, true);
  15.  
  16.                 curl_setopt($ch, CURLOPT_AUTOREFERER, 1);
  17.  
  18.             curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
  19.             curl_setopt($ch, CURLOPT_FOLLOWLOCATION, 1);
  20.             curl_setopt($ch, CURLOPT_TIMEOUT, 30);
  21.             curl_setopt($ch, CURLOPT_RANGE, "1-300");
  22.             curl_setopt($ch, CURLOPT_USERAGENT, 'Mozilla/5.0 (Windows NT 6.1) AppleWebKit/537.36 (KHTML, like Gecko) Chrome/48.0.2564.103 Safari/537.36');
  23.  
  24.             $content = curl_exec($ch);
  25.             $info = curl_getinfo($ch);
  26.             curl_close($ch);
  27.  
  28.             print_r($info);
  29.             print BR;
  30.             //$content = htmlspecialchars($content);
  31.             //print_r($content);


Там много лишнего в коде, пробовал уже много...
 
 Top
LIME
Отправлено: 01 Марта, 2016 - 08:13:34
Post Id


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


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


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




.
(Добавление)
оказалось все проще чем я думал
в исходном коде
CODE (html):
скопировать код в буфер обмена
  1. <meta http-equiv="refresh" content="1;url=http://www.avg.com/ru-ru/download-file-stb-free.tpl-stdfullblank?build=avf-free&product=avf"/>

а этот запрос уже отдает location на реальный файл
ээх)) юные хакеры))

(Отредактировано автором: 01 Марта, 2016 - 08:15:42)

 
 Top
563434
Отправлено: 01 Марта, 2016 - 15:22:36
Post Id


Новичок


Покинул форум
Сообщений всего: 10
Дата рег-ции: Авг. 2009  


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




А второй Url отдает:
CODE (htmlphp):
скопировать код в буфер обмена
  1. <!DOCTYPE html><html><head><title>Foxmail</title><meta http-equiv="refresh" content="0; url=http://www.foxmail.com/win/download" /></head><body style="background:#292929 url(./images/pc/zh/mainbanner_bg.png) 0 0 repeat;"></body></html>

Рефреш на ту же страницу
Уже не так все просто?
Могу еще десяток ссылок покинуть с разными ситуациями.
Кто еще юный...я за 13 лет работы в сети, сначала проверяю все, а потом хвалюсь...
 
 Top
LIME
Отправлено: 01 Марта, 2016 - 15:24:25
Post Id


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


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


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




563434 пишет:
я за 13 лет работы в сети, сначала проверяю все, а потом хвалюсь...
мне бы было стыдно
 
 Top
esterio
Отправлено: 01 Марта, 2016 - 16:54:24
Post Id



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


Покинул форум
Сообщений всего: 5025
Дата рег-ции: Нояб. 2012  
Откуда: Украина, Львов


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




КУКИ
 
 Top
LIME
Отправлено: 01 Марта, 2016 - 17:02:54
Post Id


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


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


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




/

(Отредактировано автором: 01 Марта, 2016 - 17:10:13)

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


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



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

 
Powered by ExBB FM 1.0 RC1. InvisionExBB