[ Поиск ] - [ Пользователи ] - [ Календарь ]
Полная Версия: Одноразовые PHP прокси
berber
Обычно, если нужно, используют бесплатные публичные прокси. Можно найти списки с большим количеством прокси серверов. Какая-то часть из них будет работать. Это удобно, если вам надо зарегистрироваться на какой-то сервисе как жителю другой страны, например.

Но использование free-шных прокси имеет существенные недостатки: ваши сессии контролируются, данные могут сохраняться или подменяться, данные о вас остаются неизвестно где и у кого.

Можно решить часть этих проблем, если использовать "одноразовые" прокси серверы на PHP. Такой сервер (скрипт) размещается на хостинге, заказанном в той стране, в какой вам надо (это как правило не дорого). Скрипт может обслуживать одну сессию. Если вам надо много - делаете каталоги и загружаете нужное количество копий скрипта. Это гораздо проще, чем делать многопоточные скрипты. Экономия по времени - в десятки раз.

Если еще и PHP скрипт адаптировать к конкретному сайту, то он получится исключительно простым, легко модернизируемым и настраиваемым. В нем будет легко искать и исправлять ошибки.

Если вдруг ваш хостинг закроется или забанится, вы просто регистрируете новый хостинг, загружаете PHP скрипт и ходите "куда надо". Т.к. такой PHP скрипт очень прост, вы можете переписывать его хоть ежедневно и никакой блокиратор не забанит его по коду.

Еще раз. Основные идеи этого PHP прокси:
- примитивность/простота листинга
- индивидуальность PHP кода
- простота применения


Несколько слов о листинге
Т.к. PHP скрипт писался под просмотр конкретного сайта, то отдельно написана обработка ссылок на внутренние веб страницы: с http:// и без.

<html>
<
head>
<
title>Freeware - free php programming. Free download</title>
<
meta name="keywords" content="free, php, programming, download">
<
meta http-equiv="Cache-Control" content="no-cache">
<
meta http-equiv="Pragma" content="no-cache">
<
meta http-equiv=Content-Type content="text/html; charset="UTF-8">
<meta name="
description" content="Freeware - free php programming. Free download">
<style type="
text/css">
a {text-decoration: none; }
a:hover {text-decoration: underline; }
</style>
</head>
<body bgcolor=#FAF7C4 text=000000 leftMargin=0 topMargin=0 marginwidth=0 marginheight=0>
<?php

$wd = "ame";
//HTTP - заголовок, для имитации работы броузера §1

$header = array
(
'Accept: text/html,application/xhtml+xml,application/xml;q=0.9,*/*;q=0.8',
'Accept-Language: ru-RU,ru;q=0.8,en-US;q=0.5,en;q=0.3',
'Accept-Encoding: gzip, deflate', // указиваем серверу, что ответ надо сжимать
'Content-type: application/x-www-form-urlencoded'
);

//
$url - какой сайт просматриваем §2
$lk = "ofl";
$url2="http://gunner.vov.ru";
$url9 = "ron";
$url = $_GET["web"]; //Получаем адрес сайта из параметров URL - http://www.oflameron.ru/mib.php/?web=http://sql.vov.ru


echo "<a href='http:".chr(47).chr(47)."www.".$lk.$wd.$url9.".ru' title='Online'><font face=arial size=10 color=#3C04A2><b>Online >></b></font></a>";

function trn($url,$url2) //Функция TRN для трансляции сайта, указанного в переменной $url
{
//Открываем сеанс связи. $handle - декриптор сеанса
$handle = curl_init();

//Возвращаем результат
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);

//Добавляем headers к результатам
//curl_setopt($handle, CURLOPT_HEADER, 1); //значение 1 означает, что необходимо вернуть заголовки


//значение 0 означает, что не возвращать заголовки
//curl_setopt($handle, CURLOPT_HEADER, 0);

curl_setopt($handle, CURLOPT_HTTPHEADER, $header);

//Задает значение HTTP заголовка "Referer: " - откуда пришел пользователь
curl_setopt($handle, CURLOPT_REFERER, 'http://www.cisco.com/');

//Задает значение HTTP заголовка "User-Agent: "
curl_setopt($handle, CURLOPT_USERAGENT, "Opera/9.80 (Windows NT 5.1; U; ru) Presto/2.9.168 Version/11.51");

curl_setopt($handle, CURLOPT_URL, $url);

curl_setopt($handle, CURLOPT_TIMEOUT, 10);
curl_setopt($handle, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($handle, CURLOPT_FOLLOWLOCATION, 1);

curl_setopt($handle, CURLOPT_COOKIEJAR, dirname(__FILE__).'/my_cookies.txt'); // сохранять куки в файл
curl_setopt($handle, CURLOPT_COOKIEFILE, dirname(__FILE__).'/my_cookies.txt');



//CURLOPT_HTTPHEADER: Массив с HTTP заголовками

//Ходим по редиректам

curl_setopt($handle, CURLOPT_AUTOREFERER, 1);

//наш прокси сервер в формате 127.0.0.1:8080
curl_setopt($handle, CURLOPT_PROXY, $proxy_host);

//Открываем страничку и пишем всё в переменную
$data2 = curl_exec($handle);

//Найдем в тексте ссылки, начинающиеся с href="http://gunner.vov.ru Причем, этот текст должен быть перед "/"
//Если текст найден, текст href="http://gunner.vov.ru/ (с слэшом) должен быть заменен на href="

$data3 = str_replace("href=\"".$url, "href=\"", $data2); //Замена с кавычками
//Т.е. все ссылки приведены к одному виду ОТНОСИТЕЛЬНЫХ ССЫЛОК на веб страницы сайта
//То же самое для img src=" - перевести все адреса картинок в ОТНОСИТЕЛЬНЫЕ АДРЕСА картинок

$data = str_replace("src=\"".$url, "src=\"", $data3); //Замена с кавычками
//Внешние ссылки с вебстраницы "испортим", чтобы они далее не были обработаны до §14 - добавим ЗВЕЗДОЧКУ

$data = str_replace("href=\"http:", "href*=\"http:", $data); //Добавление ЗВЕЗДОЧКИ для внешних ссылок


echo "href=\"".$url;

//Замена текста в HTML коде веб страницы

//BACKGROUND=
//$bodytag = str_replace("background=\"", "background=\"http://gunner.vov.ru/", $data); //Замена с кавычками
//$bodytag = str_replace("background=\'", "background=\'http://gunner.vov.ru/", $data); //Замена с одинарными кавычками

$bodytag = str_replace("background=", "background=http://gunner.vov.ru/", $data); //замена без кавычек


$currentURL .= $_SERVER["SERVER_NAME"];
//$currentURL = "href=\"http:".chr(47).chr(47).$currentURL."/mib.php/?web=".$url.chr(47);
//$currentURL = "href=\"http:".chr(47).chr(47).$currentURL."/mib.php/?domen=".$domen."&web=".$url.chr(47);


//HREF=

$currentURL = "href=\"http:".chr(47).chr(47).$currentURL."/mib.php/?web=".$url2.chr(47); //Формирует строку для ссылок в HTML коде. Добавляет proxy и доменное имя к веб странице

//Надо проверить, что в обработку не попадет href*="http:// (с ЗВЕЗДОЧКОЙ) т.к. это будут ВНЕШНИЕ адреса

$bodytag = str_replace("href=\"", $currentURL, $bodytag); //Замена для URL с кавычками
//§14 Восстановим ссылки на ВНЕШНИЕ САЙТЫ

$bodytag = str_replace("href=*\"", "href=\"", $bodytag); //Убираем ЗВЕЗДОЧКУ для внешних ссылок. Замена для URL с кавычками



//$bodytag = str_replace("href=\"", "href=\"http://gunner.vov.ru/", $bodytag); //Замена с кавычками
//$bodytag = str_replace("href=\'", "href=\"http://gunner.vov.ru/", $bodytag); //Замена с одинарными кавычками
//$bodytag = str_replace("href=", "href=http://gunner.vov.ru/", $bodytag); //замена без кавычек

//SRC=

$bodytag = str_replace("src=\"", "src=\"http://gunner.vov.ru/", $bodytag); //Замена с кавычками
//$bodytag = str_replace("src=\'", "src=\'http://gunner.vov.ru/", $bodytag); //Замена с одинарными кавычками
//$bodytag = str_replace("src=", "src=http://gunner.vov.ru/", $bodytag); //замена без кавычек


//закрываем сеанс

curl_close($handle);


echo $bodytag;

} //Закрыть функцию trn


//Вызов функции trn - для трансляции

trn($url,$url2);


?>

</body>
</
html>



Листинг и сама идея всячески достойна критики.
С уважением

Быстрый ответ:

 Графические смайлики |  Показывать подпись
Здесь расположена полная версия этой страницы.
Invision Power Board © 2001-2024 Invision Power Services, Inc.