|
|
|
| Здравствуйте! Очень нужна Ваша помощь.
Написал граббер:
<?php
Error_Reporting(0);
$host = "antiwap.ru";
$path = "/load/?$QUERY_STRING";
$fp = fsockopen($host,80,$errno,$errstr,30);
if(!$fp) echo"$errstr ($errno)<br />\n";
else{
$headers = "GET $path HTTP/1.0\r\n";
$headers .= "Host: $host\r\n";
$headers .= "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1\r\n";
$headers .= "Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1\r\n";
$headers .= "Accept-Encoding: deflate\r\n";
$headers .= "Accept-Language: ru,en;q=0.9,ru-RU;q=0.8\r\n";
$headers .= "User-Agent: Opera/9.20 (Windows NT 5.1; U; ru)\r\n\r\n";
$headers .= "Cache-Control: no-cache\r\n";
$headers .= "Proxy-Connection: close\r\n";
fwrite($fp,$headers);
while($text != "\r\n")
$text = fgets($fp,128);
$text = "";
while(!feof($fp))
$text .= fgets($fp,4096);
fclose($fp);
}
header("Cache-Control: no-cache");
header("Content-Type:text/html;charset=UTF-8");
print '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Загрузки</title>
<link rel="stylesheet" href="default.css" type="text/css">
</head>
<body><div class="main">';
$text=@preg_replace('|<!D(.*)<body>|U','',$text);
$text=@preg_replace('|<br>Добавил:(.*)user.php(.*)>(.*)</a>|U','',$text);
$text=@preg_replace('|<tr><td class="iteml"><small>(.*)<(.*)stat(.*)>Статистика</a></small></td></tr>|U','',$text);
$text=@preg_replace('|<tr><td class="item" style="border-bottom: solid 1px #000080"><small>(.*)<(.*)rating(.*)>Рейтинг</a></small></td></tr>|U','',$text);
$text=@str_replace('<tr><td class="item" style="border-bottom: solid 1px #000080"><small> <a href="http://offsex.org/old">New Sex Archive</a></small></td></tr>','',$text);
$text=@str_replace('style/folder.gif','folder.gif',$text);
$text=@preg_replace('|<img src="style/ar(.*)<(.*)index(.*)>Главная</a><br>|U','',$text);
$text=@str_replace('style/up.gif','up.gif',$text);
$text=@str_replace('<div class="bottom">','',$text);
$text=@str_replace('dl.php','http://antiwap.ru/load/dl.php',$text);
$text=@str_replace('img.php','http://antiwap.ru/load/img.php',$text);
$text=@explode('<img src="style/ar.gif" alt=">"> <a href="search.php',$text);
print"$text[0]";
print '<small><a href="./"><span>-</span> Загрузки</a><br/><a href="../"><span>-</span> На главную</a></small></div></body></html>';
?>
|
Но на этом сайте стоит защита от скачиваний. и самое главное что по ссылке вида http://antiwap.ru/load/dl.php?id=32972&s=1 файл скачивается, а если файл скачивать в граббере по идентичной ссылке нажатием кнопки "[ СКАЧАТЬ ]" то выкидывает на страницу ошибки. Вот страница скачивания этого фала, если граббер на локалке http://localhost/load/index.php?id=32972&s=1 .
Подмена реферера не помогает....
Но если сделать скрипт
<?php
header("Location:http://antiwap.ru/load/dl.php?id=32972&s=1");
?>
|
то файл скачивается! Не понимаю как совместить это с моим граббером.... Заранее спасибо за помощь! | |
|
|
|
|
|
|
|
для: demon666
(01.07.2007 в 13:48)
| | собственно убедиться в том что файл не скачивается, можно перейдя со страницы этого форума по этой ссылке http://antiwap.ru/load/dl.php?id=32972&s=1
А если эту ссылку скопировать, вставить в адресную строку и перейти то файл скачивает!
Вообще не пойму какая защита там стоит.... | |
|
|
|
|
|
|
|
для: demon666
(01.07.2007 в 13:52)
| | реферер проверяют ... либо его отсутствие, либо правильность.. хз
Нажав в бравзере на сцылку, вы передаете неправильный реферер, вставив адрес в адр. строку реферер не передаете.. (то же самое и с header())
http://softtime.ru/forum/read.php?id_forum=1&id_theme=31564 | |
|
|
|
|
|
|
|
для: demon666
(01.07.2007 в 13:48)
| | эм... может куки? | |
|
|
|
|
|
|
|
для: CrazyAngel
(01.07.2007 в 13:53)
| | >эм... может куки?
куков нет точно...
GET http://antiwap.ru/load/dl.php?id=43469&s=1 HTTP/1.0
User-Agent: Opera/9.20 (Windows NT 5.1; U; ru)
Host: antiwap.ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru,en;q=0.9,ru-RU;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Referer: http://antiwap.ru/load/index.php?id=43469&s=1
Pragma: no-cache
Cache-Control: no-cache
Proxy-Connection: close
тогда как сделать чтобы скрипт не передавал реферер?
Пробовал $headers .= "Referer:\r\n";
не работает ((
Через ini_set тоже пытался.....
или как подделать реферер чтобы он имел такой вид http://antiwap.ru/load/index.php?id=43469&s=1
То есть id=43469&s=1 это параметры ссылки которые передаются через $QUERY_STRING
делал такой заголовок $headers .= "Referer: http://antiwap.ru/load/index.php?$QUERY_STRING";
тоже не пашет ((( | |
|
|
|
|
|
|
|
для: demon666
(01.07.2007 в 14:50)
| | Прочитайте тему, что я привел... | |
|
|
|
|
|
|
|
для: demon666
(01.07.2007 в 14:50)
| | самое интересное то что настроив Оперу на работу через программку Naviscope, файлы скачиваются! В логах программа пише вот что:
Не верный запрос:
GET http://antiwap.ru/load/dl.php?id=44724&s=1 HTTP/1.0
User-Agent: Opera/9.20 (Windows NT 5.1; U; ru)
Host: antiwap.ru
Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif, image/x-xbitmap, */*;q=0.1
Accept-Language: ru,en;q=0.9,ru-RU;q=0.8
Accept-Charset: iso-8859-1, utf-8, utf-16, *;q=0.1
Referer: http://localhost/load/index.php?id=44724&s=1
Pragma: no-cache
Cache-Control: no-cache
Proxy-Connection: close
Исправляет на такие запросы:
HTTP/1.0 302 Found
Date: Sun, 01 Jul 2007 10:48:32 GMT
Server: Apache
Location: http://l.antiwap.ru/Programmy/~Series~60/internet/antiwap.ru_10536~_jataayujb~5~mobilebrowserv~130~s~60~v~2~fp~3~symbianos~81.sis
Connection: close
Content-Type: text/html
HTTP/1.0 302 Found
Date: Sun, 01 Jul 2007 10:48:32 GMT
Server: Apache
Location: http://l.antiwap.ru/Programmy/~Series~60/internet/antiwap.ru_10536~_jataayujb~5~mobilebrowserv~130~s~60~v~2~fp~3~symbianos~81.sis
RemovedHdr: close
Content-Type: text/html
И файл выдается на скачивание....
Следовательно можно это сделать как то и средствами php. | |
|
|
|
|
|
|
|
для: demon666
(01.07.2007 в 14:57)
| | kasmanaft , спасибо, прочитал, но если не ошибаюсь на этом сайте нет wml версии загрузок ((
А если в заголовках реферер вообще не передавать, то не работает... если грабить через file_get_contents тоже не качает.... | |
|
|
|
|
|
|
|
для: demon666
(01.07.2007 в 15:03)
| | Мммм..... Ваш граббер работает! (если ссылки на файлы показывает, я не запускал)
Сам этот граббер нужен только для того, чтобы достать ссылки на файлы. Он их качать не будет.
Ссылки показывает - работает... не показывает - не работает.
>> file_get_contents тоже не качает....
Файлы качает, попробуйте "echo file_get_contents('http://antiwap.ru/load/dl.php?id=32972&s=1');" .. появится характерная крякозябра :-)
Что там насчет страниц со ссылками на файлы (качает она их или нет) не знаю... По идее должна, в своем граббере вы реферер нигде не передаете, он работает => должна и file_get_contents качать.
>> на этом сайте нет wml версии загрузок
WML - это язык разметки (как HTML, но попроще и с меньшими возможностями). Вот.
То есть на том сайте wml версия и не нужна... Сделайте свою (если нужно). | |
|
|
|
|
|
|
|
для: kasmanaft
(01.07.2007 в 15:23)
| | kasmanaft, граббер показывает ссылки на файлы. Но при попытке скачать этот файл, перекидывает на главную страницу....
Да,этот скрипт работает
<?
$file=file_get_contents('http://antiwap.ru/load/dl.php?id=32782&s=1');
echo $file;
?>
|
Немного видоизменяю чтобы использовать в граббере:
Файл dl.php
<?
$file=file_get_contents('http://antiwap.ru/load/dl.php?$QUERY_STRING');
echo $file;
?>
|
В граббере стираю строчку
$text=@str_replace('dl.php','http://antiwap.ru/load/dl.php',$text);
Дальше пытаюсь скачать файл, прекидывает на http://localhost/load/dl.php?id=32782&s=1
По идее должна начаться закачка, но появляется надпись "Файл не найден
Не указан или указан несуществующий файл.." (((
пробовал даже такой способ:
в граббере:
$pattern='|<a[\s]href="dl.php\?([^<]+)">|U';
preg_match_all($pattern,$text,$out);
$link=$out[1][0];
|
Файл dl.php:
<?
include 'index.php';
$file=file_get_contents('http://antiwap.ru/load/dl.php?$link');
echo $file;
?>
|
и тоже пишет "Файл не найден
Не указан или указан несуществующий файл.." ((( | |
|
|
|
|
|
|
|
для: demon666
(01.07.2007 в 16:07)
| |
<?
$file=file_get_contents('http://antiwap.ru/load/dl.php?$QUERY_STRING');
echo $file;
?>
|
Измените тут кавычки на двойные.
зыж лучше не используйте register_globals.
зыжж испльзуя этот скрипт вы здорово увеличите нагрузку и трафик. Я не советовал, просто показал, что работает. (попробуйте вместо него header("Location: ....") ) | |
|
|
|
|
|
|
|
для: kasmanaft
(01.07.2007 в 16:44)
| | >
><?
>$file=file_get_contents('http://antiwap.ru/load/dl.php?$QUERY_STRING');
>echo $file;
>?>
>
|
>Измените тут кавычки на двойные.
>
>зыж лучше не используйте register_globals.
>зыжж испльзуя этот скрипт вы здорово увеличите нагрузку и трафик. Я не советовал, просто показал, что работает.
да, это действительно не способ, зачем тогда вообще делать граббер....
Я просто не понимаю каким образом может преедаваться реферер в таком скрипте:
<?
header("Location:http://antiwap.ru/load/dl.php?$QUERY_STRING");
?>
|
Выкидавает на главную страницу, а значит неверный реферер.
Когда такой скрипт работает:
<?
header("Location:http://antiwap.ru/load/dl.php?id=10624&s=1");
?>
|
| |
|
|
|
|
|
|
|
для: demon666
(01.07.2007 в 17:11)
| | делаем такой скрипт:
dl.php
<?
header("Location:http://antiwap.ru/load/dl.php?$QUERY_STRING");
?>
|
Обращаемся к нему вот так: http://localhost/load/dl.php?id=10624&s=1
Файл загружается.
Точно такая же ссылка: когда жмем "СКАЧАТЬ" со страницы граббера, то выкидывает на главную... Вообще ничего не понимаю..... | |
|
|
|
|
|
|
|
для: demon666
(01.07.2007 в 17:18)
| | > Точно такая же ссылка: когда жмем "СКАЧАТЬ" со страницы граббера
Разве такая же?
$text=@str_replace('dl.php','http://antiwap.ru/load/dl.php',$text);
$text=@str_replace('img.php','http://antiwap.ru/load/img.php',$text);
Если туда смотрю, то ссылки ведут не на ваш скрипт, а прямиком на антивап. | |
|
|
|
|
|
|
|
для: kasmanaft
(01.07.2007 в 17:36)
| | нет, я же писал, что убирал.....
вот скрипт...
<?php
#Error_Reporting(0);
$text=@file_get_contents("http://antiwap.ru/load/?$QUERY_STRING");
header("Cache-Control: no-cache");
header("Content-Type:text/html;charset=UTF-8");
//шапка (при необходимости добавляем своё...)
print '<?xml version="1.0" encoding="UTF-8"?>
<!DOCTYPE html PUBLIC "-//W3C//DTD HTML 4.01 Transitional//EN"><html><head><meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<title>Загрузки</title>
<link rel="stylesheet" href="default.css" type="text/css">
</head>
<body><div class="main">';
$text=@preg_replace('|<!D(.*)<body>|U','',$text);
$text=@preg_replace('|<br>Добавил:(.*)user.php(.*)>(.*)</a>|U','',$text);
$text=@preg_replace('|<tr><td class="iteml"><small>(.*)<(.*)stat(.*)>Статистика</a></small></td></tr>|U','',$text);
$text=@preg_replace('|<tr><td class="item" style="border-bottom: solid 1px #000080"><small>(.*)<(.*)rating(.*)>Рейтинг</a></small></td></tr>|U','',$text);
$text=@str_replace('<tr><td class="item" style="border-bottom: solid 1px #000080"><small> <a href="http://offsex.org/old">New Sex Archive</a></small></td></tr>','',$text);
$text=@str_replace('style/folder.gif','folder.gif',$text);
$text=@preg_replace('|<img src="style/ar(.*)<(.*)index(.*)>Главная</a><br>|U','',$text);
$text=@str_replace('style/up.gif','up.gif',$text);
$text=@str_replace('<div class="bottom">','',$text);
#$text=@str_replace("dl.php","http://antiwap.ru/load/dl.php",$text);
$text=@str_replace('img.php','http://antiwap.ru/load/img.php',$text);
$text=@explode('<img src="style/ar.gif" alt=">"> <a href="search.php',$text);
print"$text[0]";
print '<small><a href="./"><span>-</span> Загрузки</a><br/><a href="../"><span>-</span> На главную</a></small></div></body></html>';
?>
|
dl.php
<?
header("Location:http://antiwap.ru/load/dl.php?$QUERY_STRING");
?>
|
| |
|
|
|
|
|
|
|
для: demon666
(01.07.2007 в 17:47)
| | Нда... Оказывается header("Location: ...") тоже передает реферер (если он есть)
Остается, наверное, только яваскрипт.
Что-то вроде (в dl.php)
<script type="text/javascript">
window.location.href = "http://antiwap.ru/load/dl.php?<?php echo $_SERVER['QUERY_STRING'] ?>";
</script>
|
Может быть к ссылкам на onclick этот редирект подвесить.. | |
|
|
|
|
|
|
|
для: kasmanaft
(01.07.2007 в 19:18)
| | Спасибо что помогаете, я Вас достал уже наверное, но и это не работает(((
В JS не силен, если не сказать что вообще пока не силен....
Мда.. а тут в какой-то теме говорили, что нельзя сделать защиту от грабберов... | |
|
|
|
|
|
|
|
для: demon666
(01.07.2007 в 19:53)
| | Точно, в опере не работает.. А я в ИЕ проверил и успокоился...
Тогда хз.. видимо никак не обойти (разве что, попробуйет WML)
> нельзя сделать защиту от грабберов...
Ну сам граббер то работает. Ссылки показывает (даже если стояла бы проверка реферера, сессия, еще какие-нибудь заморочки - все можно было бы обойти)
А когда пользователь нажимает на ссылку - это уже другое дело.. граббер тут нипричем. | |
|
|
|
|