Но использование 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>
Листинг и сама идея всячески достойна критики.
С уважением