Проверка открытия в браузере...

Тема в разделе "PHP", создана пользователем dron4eg, 24 дек 2010.

Статус темы:
Закрыта.
Модераторы: latteo
  1. dron4eg

    dron4eg Создатель

    Регистр.:
    15 дек 2010
    Сообщения:
    13
    Симпатии:
    0
    Доброго времени суток всем! Возник вопрос, токой файловый хостинг как depositfiles.com имеет правило
    "Ссылки на файлы должны быть размещены на веб-страницах, скачивания не засчитываются как оплачиваемые, если:
    человек, скачавший Ваш файл, пришел по ссылке, размещенной в ICQ, E-mail, или же вручную скопировал ссылку в строку браузера (в целях борьбы с массовыми рассылками)"
    Каким образом можно это все обойти? То есть как средствами php получить ссылку, или скопировать на хост файл, чтоб оно засчиталось? Как сэмулировать переход брайзером по ссылке и при этом скачать?
    Пытался определить программой charles переход, или передачу информации при переходе на ссылку - но так ничего и не нашел.
    ссылка по которой нужно перейти имеет вид "http://fileshare..."
    Пример кода прикрепил в файле!
    Хочу сделать сервис через который можно будет скачать файл с этого хостинга, не имея голд-акаунта - но без ограничений, но при этом не терять возможности дать заработать учасникам.
    Заранее всем спасибо!
     

    Вложения:

    • code.txt
      Размер файла:
      17,1 КБ
      Просмотров:
      8
  2. cwman

    cwman

    Регистр.:
    4 май 2008
    Сообщения:
    465
    Симпатии:
    548
    Исходя из описания, не засчитываются как оплачиваемые скачивания когда сервис не видит рефера (откуда человек пришёл) - это элемент защиты от накручивания.

    непонятно что именно необходимо
    скачать файл или накрутить счётчик скачиваний
     
  3. dron4eg

    dron4eg Создатель

    Регистр.:
    15 дек 2010
    Сообщения:
    13
    Симпатии:
    0
    Ну файл я уже могу скачать, с этим я разобрался, а вот со счетчиком проблема :(
     
  4. saen

    saen

    Регистр.:
    6 авг 2006
    Сообщения:
    756
    Симпатии:
    129
    Ты хотя бы анализировал работу счетчика прежде чем тут писать? и html-код документа ненужный зачем прикрепил? какой толк от него? лучше бы скрипт свой прикрепил, так бы хоть можно было с чего начать думать.
     
  5. dron4eg

    dron4eg Создатель

    Регистр.:
    15 дек 2010
    Сообщения:
    13
    Симпатии:
    0
    saen - прошу прощения. Я сижу в пхп неделю от силы, что за чем - я не знаю, по этому и обратился к вам :( Вы скажите что вам нужно - я вам предоставлю... Скажете что за чем - я и сам сделаю :ah:
    Вот код который написал:
    PHP:
    //здесь авторизируемся на сайте   
    $url="http://depositfiles.com/ru/login.php?return=%2Fru%2F";   
    $ch curl_init(); 
    // cURL будет выводить подробные сообщения о всех производимых действиях
        
    curl_setopt($chCURLOPT_VERBOSE1);
        
    curl_setopt($chCURLOPT_HEADER1);   
    // url страницы для авторизации   
    curl_setopt($chCURLOPT_URL$url);   
    //вернуть результат запроса в переменную, а не на экран   
    curl_setopt($chCURLOPT_RETURNTRANSFER,1);   
    // используем метод POST    
    curl_setopt($chCURLOPT_POST1);   
    // данные передаваемые POST запросом   
    curl_setopt($chCURLOPT_POSTFIELDS"go=1&login=login&password=password");   
    //сохранять полученные COOKIE в файл 
    curl_setopt ($chCURLOPT_COOKIEFILE"cookie.txt");
    curl_setopt ($chCURLOPT_COOKIEJAR"cookie.txt");  
    // при получении HTTP заголовка "Location: " будет происходить перенаправление
    // на указанный этим заголовком URL
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/4.0.' .'(compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)');
    curl_setopt($chCURLOPT_REFERER$referer);   
    //запускаем   
    $result curl_exec($ch);
    //здесь скачиваем как авторизированные пользователь страницу   
    $url="http://depositfiles.com/ru/files/6iyeigiet";     
    //url страницы или файла для скачивания   
    curl_setopt($chCURLOPT_URL$url);   
    //запрещаем делать запрос с помощью POST и соответственно разрешаем с помощью GET    
    curl_setopt($chCURLOPT_POST0);    
    //отсылаем серверу COOKIE полученные от него при авторизации   
    curl_setopt($chCURLOPT_COOKIEFILE"cookie.txt");//get cookie from file  
    // при получении HTTP заголовка "Location: " будет происходить перенаправление
    // на указанный этим заголовком URL
    curl_setopt($chCURLOPT_POST1);    
    curl_setopt($chCURLOPT_POSTFIELDS"gateway_result=1");  
    curl_setopt($chCURLOPT_FOLLOWLOCATION1);
    curl_setopt($chCURLOPT_USERAGENT'Mozilla/4.0.' .'(compatible; MSIE 6.0; Windows NT 5.2; SV1; .NET CLR 1.1.4322)');
    curl_setopt($chCURLOPT_REFERER$referer);  
    //запускаем   
    $result curl_exec($ch);   
    curl_close($ch);     
    preg_match("/<a href=\"(http:\/\/fileshare)([^\"]*)\">(.*)<\/a>/iU"$result$m);
    $link $m[1].$m[2]; //наша ссылка
    if (!copy($link$newfile)) {        //копируем файл
        
    echo "не удалось скопировать $file...\n";
    }
    Прошу прощения за карявость кода, как говорил выше - мало опыта :( Большая часть кода (авторизация на депозите и переход по депозитовской ссылке) взята с Nulled Warez (Огромное спасибо saen) С регуляркой разобратся не могу никак... Но то потихоньку решаю... Сейчас нужно со счетчиком разобратся. Как его проанализировать?
     
  6. cwman

    cwman

    Регистр.:
    4 май 2008
    Сообщения:
    465
    Симпатии:
    548
    Значит будем счётчик накручивать :)
    Нужно
    1) Скачать первую страницу с файлом
    2) Скачать по ссылке из первой страницы страницу бесплатной загрузки
    3) Взять таймаут 60 сек
    4) По сгенерированой ссылке скачать страницу загрузки файла
    5) Скачать по ссылке файл
    6) Поменять прокси и повторить с п.1
     
  7. dron4eg

    dron4eg Создатель

    Регистр.:
    15 дек 2010
    Сообщения:
    13
    Симпатии:
    0
    А если у меня есть голд? Мне не нужно ждать 60 секунд. То есть в таком случае я должен скачать первую страницу и там получаю ссылку на файл, уже прямую ссылку, и когда скачиваю файл - счетчик не засчитывает мне уникальное, то есть оплачиваемое скачивание, хоть я и впервые за сутки качаю :(
     
  8. cwman

    cwman

    Регистр.:
    4 май 2008
    Сообщения:
    465
    Симпатии:
    548
    я так понимаю, что ты купил Голд и решил накрутить счётчик
    но при скачивании своих же файлов скачивание не засчитывается
    а при скачивании одного и того же файла n-количество раз можно забанить Голдовский аккаунт.
     
  9. dron4eg

    dron4eg Создатель

    Регистр.:
    15 дек 2010
    Сообщения:
    13
    Симпатии:
    0
    на депозите работаю уже около 2 лет, немного знаком с их системой :)

    Повторюсь: "Хочу сделать сервис через который можно будет скачать файл с этого хостинга, не имея голд-акаунта - но без ограничений, но при этом не терять возможности дать заработать учасникам."

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

    ---------- Post added at 06:09 ---------- Previous post was at 04:26 ----------

    Покопался по страницам, вот что нашел... Если у меня нет голда - то первая страница мне выдает кнопку с кодом:
    HTML:
    <form action="/ru/files/9dplajy2i?redirect" method="post" onsubmit="show_begin_popup(0);pageTracker._trackPageview('/gateway2download/ru');return true;"><div>
    					<input type="submit" class="button2" value="Бесплатно"/>
    					<input type="hidden" name="gateway_result" value="1"/>
    				</div></form>
    То есть для получения страници с ссылкой на скачивание этот запрос нужно послать обратно сайту. Мне кажется что я делаю неправильно - отсылая его сразу, при получении страници на бесплатное скачивание вот этими 3 строчами:
    PHP:
    curl_setopt($chCURLOPT_POST1);    
    curl_setopt($chCURLOPT_POSTFIELDS"gateway_result=1");  
    curl_setopt($chCURLOPT_FOLLOWLOCATION1); 
    Как сделать так, чтоб я сначала получил страницу, а потом послал пост запрос?
     
  10. latteo

    latteo Эффективное использование PHP, MySQL

    Moderator
    Регистр.:
    28 фев 2008
    Сообщения:
    1.405
    Симпатии:
    1.185
    Да в общем то все правильно с точки зрения депозита
    при закачке непосредственно файла $url="http://depositfiles.com/ru/files/6iyeigiet"; ты задаешь реферер от куда мы получили ссылку строкой
    curl_setopt($ch, CURLOPT_REFERER, $referer);
    Проверь возможно переменная $referer имеет пустое значение или содержит адресс страницы на котором нет ссылки на http://depositfiles.com/ru/files/6iyeigiet - вполне возможно, что депозит это проверяет.


    В секции:
    //здесь авторизируемся на сайте
    не вижу смысла в строке curl_setopt($ch, CURLOPT_REFERER, $referer);

    Довольно палевно, если твой скрипт для каждого файла, который надо скачать будет сначала авторизироватся - вынеси это в отдельный скрипт, а качай по кукам("cookie.txt").

    PS возможно на депозите есть, еще другие методы защиты от такой накрутки.


    Возможно немного глупый, но беспокоящий меня вопрос: при закачке по голду и просто так через их десктопный клиент вебмастер деньгу получает?
     
Статус темы:
Закрыта.