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); }
Список браузеров можно изменять. Я его собрал из тех, которые стояли у меня на машине.
Список прокси серверов нужно перепроверять. Я его брал тут
REPLY))
Я тоже об этом думал.
Об удалённом сайте…
Могу списки проксей проверять, если не затруднит Вас.
REPLY))
Списки прокси серверов нужно перепроверять. Вариант из моей функции был актуален на момент написания статьи
REPLY))
Не плохо… но и нехорошо;)
REPLY))
А что сделать что бы было хорошо?
REPLY))
Все конечно выглядит очень даже кучеряво, но к сожалению не работает. В логах пишет ip обращаемого сервера.
REPLY))
Что сделать что бы не писало? Может воспользоваться анонимными проксями?