Дата: декабря 24, 2009
Категория: PHP
Теги: , , , ,  

php функция запроса с подстановкой заголовков через прокси сервер

Хамелеон. Псевдо запрос браузераСегодня написал прекрасную замену функцию которая посылает запрос на другой сайт через один из прокси серверов указанных из списка и подставляет случайный заголовок браузера. Отлично подходит от элементарных защит от персеров.

function get_file_contents_from_url( $url ) {
$proxi_list = array(
‘121.2.65.240:80′,
‘62.117.69.52:80′,
‘80.74.110.149:80′,
‘200.177.228.4:80′,
‘82.223.117.209:80′,
‘194.160.76.5:80′,
‘201.93.162.220:3128′,
‘201.6.243.253:3128′,
‘88.79.73.138:3128′,
‘201.16.203.241:8080′,
‘200.215.15.34:8080′,
‘193.252.53.103:80′,
‘202.77.104.83:8080′,
‘98.213.179.80:8085′,
‘212.116.220.100:8081′,
‘218.183.224.146:8080′,
‘24.24.138.196:8085′,
‘174.48.241.188:8085′,
‘92.61.37.103:3128′,
‘203.123.246.13:8080′,
‘61.164.108.125:1080′,
‘211.138.249.178:1080′,
‘212.191.90.142:8080′,
‘217.196.164.34:3128′,
‘217.196.164.34:3128′
);
$browser_lists = array(
‘Opera/9.00 (Windows NT 5.1; U; ru)’,
‘Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.2.15 Version/10.10′,
‘Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)’,
‘Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.38 Safari/532.0′,
‘Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_URL, $url );
curl_setopt($curl, CURLOPT_USERAGENT, @current(array_rand( $browser_lists ,1 )));
curl_setopt($curl, CURLOPT_PROXY, @current(array_rand( $proxi_list ,1 )) );
return curl_exec ($curl);
}
function get_file_contents_from_url( $url ) {
$proxi_list = array(
'121.2.65.240:80',
'62.117.69.52:80',
'80.74.110.149:80',
'200.177.228.4:80',
'82.223.117.209:80',
'194.160.76.5:80',
'201.93.162.220:3128',
'201.6.243.253:3128',
'88.79.73.138:3128',
'201.16.203.241:8080',
'200.215.15.34:8080',
'193.252.53.103:80',
'202.77.104.83:8080',
'98.213.179.80:8085',
'212.116.220.100:8081',
'218.183.224.146:8080',
'24.24.138.196:8085',
'174.48.241.188:8085',
'92.61.37.103:3128',
'203.123.246.13:8080',
'61.164.108.125:1080',
'211.138.249.178:1080',
'212.191.90.142:8080',
'217.196.164.34:3128',
'217.196.164.34:3128'
);
$browser_lists = array(
'Opera/9.00 (Windows NT 5.1; U; ru)',
'Opera/9.80 (Windows NT 6.0; U; ru) Presto/2.2.15 Version/10.10',
'Mozilla/5.0 (Windows; U; Windows NT 6.0; ru; rv:1.9.1.6) Gecko/20091201 Firefox/3.5.6 (.NET CLR 3.5.30729)',
'Mozilla/5.0 (Windows; U; Windows NT 6.0; en-US) AppleWebKit/532.0 (KHTML, like Gecko) Chrome/3.0.195.38 Safari/532.0',
'Mozilla/4.0 (compatible; MSIE 8.0; Windows NT 6.0; Trident/4.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.5.30729; .NET CLR 3.0.30729)
);
$curl = curl_init();
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_URL, $url );
curl_setopt($curl, CURLOPT_USERAGENT, @current(array_rand( $browser_lists ,1 )));
curl_setopt($curl, CURLOPT_PROXY, @current(array_rand( $proxi_list ,1 )) );
return curl_exec ($curl);
}

Список браузеров можно изменять. Я его собрал из тех, которые стояли у меня на машине.

Список прокси серверов нужно перепроверять. Я его брал тут

6 Comments

  1. ИгорьИгорь  
    декабря 31, 2009
    REPLY))

  2. Я тоже об этом думал.
    Об удалённом сайте…
    Могу списки проксей проверять, если не затруднит Вас.

    1F

    Списки прокси серверов нужно перепроверять. Вариант из моей функции был актуален на момент написания статьи

    2F

  3. ;) ;)  
    января 21, 2010
    REPLY))

  4. Не плохо… но и нехорошо;)

    3F

    А что сделать что бы было хорошо?

    4F

  5. AlexAlex  
    апреля 13, 2010
    REPLY))

  6. Все конечно выглядит очень даже кучеряво, но к сожалению не работает. В логах пишет ip обращаемого сервера.

    5F

    Что сделать что бы не писало? Может воспользоваться анонимными проксями?

    6F

Написать ответ

 Имя

 Mail

 Сайт

[Имя и Mail обязательны для заполнения. Mail не будет опубликован.]


 9fce13c8-2714-4603-b8e7-33be6c785d58