Xwab
Форумыnavigate_nextНебольшие вопросы по PHP/MySQL

Написать граб
Сообщения
V1P23RUS

Вообщем решил сегодня граб написать) Но что не срастается) Дошел до этого)
[php:1:da26a94a3d]<?php
error_reporting(0);
$accept = "Accept: text/html, application/xml;q=0.9, application/xhtml+xml, image/png, image/jpeg, image/gif,image/x-bitmap, */*;q=0.1\r\n";
$accept_language = "Accept-Language: ru, en;q=0.9\r\n";
$accept_charset = "Accept-Charset: utf-8;q=0.6 windows-1251;q=0.1 *;q=0.1\r\n";
$referer = "Referer: http://erohard.info/index.php\r\n";
$conection = "Connection: Close\r\n";
$host= "erohard.info";
$path="/index.php?".$_SERVER['QUERY_STRING'];
$fp=fsockopen($host,80,$errno, $errstr,10);
if(!$fp) {
echo "$errstr ($errno)<br/>\n";
} else {
$data = "";$post=0;
foreach($_POST as $key=>$value){$post=1;
$data.="&$key=$value";}
if($data)$data=substr($data,1);
if($post)
$headers = "POST $path HTTP/1.0\r\n";else
$headers = "GET $path HTTP/1.0\r\n";
$headers .= "Host: $host\r\n";
$headers .= "Accept: *\r\n";
$headers .= "Accept-Charset: UTF-8\r\n";
$headers .= "Accept-Charset: *\r\n";
$headers .= "Accept-Encoding: deflate\r\n";
$headers .= "Accept-Language: ru\r\n";
$headers .= "User-Agent: Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1; ru) Opera 9.50\r\n";
if($post){
$headers .= "Content-type: application/x-www-form-urlencoded\r\n";
$headers .= "Content-Length: ".strlen ($data)."\r\n";
$headers .= "\r\n";
$headers .= $data;}else $headers.="\r\n";
@fwrite($fp, $headers);
while($file != "\r\n") $file = @fgets($fp, 128);
$file = '';
while(!feof($fp)) $file .= @fgets($fp, 4096);
@fclose($fp); }


echo $file;
?>[/php:1:da26a94a3d]
При заходе на страницу) ТОлку) Белая страница и все) В чем проблемма?
добавлено спустя 4 минуты:
С белой страницей разобрался)error_reporting(0); скрывал ошибку в 33 строке) Что там нужно подправить?
добавлено спустя 58 секунд:
Подскажите) Первый раз пишу граббер))

14 Апр 2013, 13:55
Okula

Использование сокетов разрешено на хосте?

14 Апр 2013, 14:04
V1P23RUS

ммм) на хомяке тестю)хз чесно,(

14 Апр 2013, 14:10
Okula

на h2m запрещено, насколько я помню. Делай через curl

14 Апр 2013, 14:19
V1P23RUS

не подскажешь как? я нубас полный)

14 Апр 2013, 14:21
FreeSoul

V1P23RUS, вот так, например)

14 Апр 2013, 14:25
V1P23RUS

вот что нарыл) но он под джона похоже) как вырезать код джона оттуда?

14 Апр 2013, 14:43
Вован

V1P23RUS, incluid'ы на свои меняй и всё

14 Апр 2013, 15:00
V1P23RUS

там какай та лабуда по поводу подключения ядра ждона и тд( а я рак полнейший)
добавлено спустя 6 часов 27 минут:
вобщем дошел до этого)
добавлено спустя 1 минуту:
includes/core.php
<?php


//Скрываем файл от левых глаз
defined ('SYSTEM') or exit;
//Функция, которая получает страницу жертвы через cURL

function getContent($url) {
$ch = curl_init(); //Запускаем сеанс cURL
curl_setopt($ch, CURLOPT_URL, $url); //Передаем адрес страницы
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); //Задаем таймаут в секундах
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //Говорим cURL что результат нужно вернуть в переменную
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera 11'); //Задаем юзерагент
curl_setopt($ch, CURLOPT_REFERER, 'http://mobfun.org/'); //Передаем реферер
$result = curl_exec($ch); //Выполняем
curl_close($ch); //Закрываем сеанс cURL
return $result; //Возвращаем результат
}

//Функция очистки кеша

function clearCache($dir) {
$read = array_diff(scandir($dir), array('.', '..', '.htaccess')); //читаем папку
foreach($read as $file) { //перебираем массив
if(is_file($dir . '/' . $file)) //если это файл
unlink($dir . '/' . $file); //то удаляем
else //иначе
continue; //продолжаем дальше
}
}

//Функция проверки даты последней чистки кэша и очистка кэша в случае необходимости
function checkCache($dir, $time = 24) {
$file = $dir . '/lastclean.dat'; //Путь к файлу, который указывает дату последней очистки
if(!file_exists($file))
file_put_contents($file, 1); //если файл очистки не существует. то создаем
if(filemtime($file) < (time() - $time * 3600)) //если кэш чистился больше $time часов назад, то чистим
clearCahce($dir); //чистим
}

//Объявляем константы и переменные
define ('DIR', dirname($_SERVER['PHP_SELF'])); //Определяем имя папки с граббером
define ('URL', 'http://erohard.info/index.php' . strtr($_SERVER['REQUEST_URI'], array(DIR => '', '//' => '/', '\\' => '/'))); //Определяем URL текущей страницы
define ('CTIME', 24); //Время жизни кеша в часах
define ('CACHE', 'cache/' . md5(URL)); //Объявляем файл кеша

checkCache('cache', CTIME); // проверяем кэш на время существования
?>



добавлено спустя 1 минуту:
index.php
<?php

//Задаем путь к корню
$rootpath = $_SERVER['DOCUMENT_ROOT'] . '/';
//Подключаем файл функций
define ('SYSTEM', TRUE);
include 'includes/core.php';
//Объявляем headmod
$headmod = substr(CACHE, 0, 7); //Делаем хэедмод динамическим для учета переходов в онлайне
//Объявляем титл страницы
$textl = 'Качай бесплатно';

//Проверяем, существует ли файл кеша для данной страницы
if(file_exists(CACHE)) {
$content = file_get_contents(CACHE); //если существует, то загружаем кэш
//и выводим

echo $content; //выводим результат

}

//Создаем массив с заменами
$strtr = array(
'href="index.php' => 'href="' . DIR //Заменяем имя папки в ссылках на свою
);
//Создаем массив с регулярками
$replaces = array(
'#<\?xml.*?class="phdr">#s'         => '<div class="phdr">', //Вырезаем верх
'#<table class="tmn".*</html>#s'    => ''                    //Вырезаем низ
);
//Получаем страницу
$content = getContent(URL);
//Обрабатываем регуляркой, массив с правилами $replaces
$content = preg_replace(array_keys($replaces), array_values($replaces), $content);
//Делаем замену нужных элементов, массив $strtr
$content = strtr($content, $strtr);
//Записываем результат в кэш
file_put_contents(CACHE, $content);
//Выводим результат
echo $content;
?>







добавлено спустя 2 минуты:
и того) при входе

301 Moved Permanently

14 Апр 2013, 21:40
Вован

[php:1:24231d06ca]function getContent($url) {
$ch = curl_init(); //Запускаем сеанс cURL
curl_setopt($ch, CURLOPT_URL, $url); //Передаем адрес страницы
curl_setopt($ch, CURLOPT_CONNECTTIMEOUT, 10); //Задаем таймаут в секундах
curl_setopt($ch, CURLOPT_RETURNTRANSFER, TRUE); //Говорим cURL что результат нужно вернуть в переменную
curl_setopt($ch, CURLOPT_USERAGENT, 'Opera 11'); //Задаем юзерагент
curl_setopt($ch, CURLOPT_REFERER, 'http://google.com/'); //Передаем реферер
$result = curl_exec($ch); //Выполняем
curl_close($ch); //Закрываем сеанс cURL
return $result; //Возвращаем результат
}
$file = getContent('http://erohard.info/index.php');
echo $file;
[/php:1:24231d06ca]
пробуй так мб

15 Апр 2013, 15:20
Ответить на тему