PHP и прокси...

malls
На сайте с 08.08.2005
Offline
255
794

Кто-нибудь ломал голову над работой скриптов через прокси?

Т.е. теоретически интересен модуль, который бы на входе получал адрес страницы и параметры POST или GET запроса, а на выходе коннектился бы к этой странице через внешний прокси сервер и передавал ей нужные данные в соответсвующем режиме (POST/GET). В идеале использование случайной выборки из списка прокси (ну правда это проще).

T.R.O.N
На сайте с 18.05.2004
Offline
314
#1

malls,

LWP::UserAgent - позволяет отпралять запросы через прокси и получать ответ.

От воздержания пока никто не умер. Хотя никто и не родился! Prototype.js был написан теми, кто не знает JavaScript, для тех, кто не знает JavaScript (Richard Cornford)
malls
На сайте с 08.08.2005
Offline
255
#2
T.R.O.N:
malls,
LWP::UserAgent - позволяет отпралять запросы через прокси и получать ответ.

Дык это Perl...

Кроме того подозреваю :) что и CURL тоже это умеет, просто интересно готовое решение.

T.R.O.N
На сайте с 18.05.2004
Offline
314
#3
malls:
Дык это Perl...

Конечно перл. А надо хто?????

Используя эту библиотеку, - решние занимает 6-10 строк.

Dreammaker
На сайте с 20.04.2006
Offline
570
#4
malls:
модуль, который бы на входе получал адрес страницы

Если готовое решение, то оно как минимум должно подразумевать откуда получается адрес страницы :)

А так да, curl - это тоже делает в несколько строчек.

curl_setopt($curl, CURLOPT_PROXY, "proxy:port");

может ещё понадобится добавление куков от прокси и логинов-паролей. Имхо, здесь быстрее написать, чем искать решение :)

malls
На сайте с 08.08.2005
Offline
255
#5
Dreammaker:
Если готовое решение, то оно как минимум должно подразумевать откуда получается адрес страницы :)

Даем ему! Т.е. передаем как скрипту или как модулю... Например массив:

URL / POST|GET / V|A|R|I|A|B|L|E|S

Dreammaker:
А так да, curl - это тоже делает в несколько строчек.

curl_setopt($curl, CURLOPT_PROXY, "proxy:port");

До этого места и так было понятно... :)

Dreammaker:
может ещё понадобится добавление куков от прокси и логинов-паролей.

вот-вот-вот... Дальше я примерно так же и поразмыслил! :)

(а есть еще https и много всяких смешных вещей!)

Dreammaker:
Имхо, здесь быстрее написать, чем искать решение :)

Возьметесь? ;)

T.R.O.N:
Конечно перл. А надо хто?????

А надо: зри в корень! Т.е. в "Заголовок"

Dreammaker
На сайте с 20.04.2006
Offline
570
#6
malls:
Возьметесь?

Ну на понт брать не нужно :) Для себя бы написал, а так ...

update:

malls:
URL / POST|GET / V|A|R|I|A|B|L|E|S

так как нужно передавать пары имя_переменной/значение, то такой вараинт не подойдёт - у вас не парное количество :)

dkameleon
На сайте с 09.12.2005
Offline
386
#7

	function GetPage($url, $proxy, $get, $post) {
$result = "";
if ($ch = curl_init("$url?$get")) {
curl_setopt ($ch, CURLOPT_USERAGENT, "Mozilla/5.0 (X11; U; FreeBSD i386; en-US; rv:1.2a) Gecko/20021021");
curl_setopt($ch, CURLOPT_HEADER, 1);
curl_setopt($ch, CURLOPT_VERBOSE, 0);
curl_setopt($ch, CURLOPT_PROXY, $proxy);
curl_setopt($ch, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($ch, CURLOPT_SSL_VERIFYPEER, 0);
if (strlen($post) > 0) {
curl_setopt($ch, CURLOPT_POST, 1);
curl_setopt($ch, CURLOPT_POSTFIELDS, $post);
}
curl_setopt($ch, CURLOPT_TIMEOUT, 30);

$result = curl_exec($ch);
curl_close($ch);
}
return $result;
}
так и не понял, в чём была проблема написать подобные десятьк строк :)

вызывать например так:


echo GetPage('http://google.com', 'xx.xx.xx.xx:xx', http_build_query($get_array), http_build_query($post_array));
Дизайн интерьера (http://balabukha.com/)
malls
На сайте с 08.08.2005
Offline
255
#8
dkameleon:
так и не понял, в чём была проблема написать подобные десятьк строк :)

Проблема в том, что их там двадцать! :)

Спасибо попробую поюзать!..

Dreammaker
На сайте с 20.04.2006
Offline
570
#9
dkameleon:
так и не понял, в чём была проблема написать подобные десятьк строк

лень :) тем более там ещё прикрутить нужно несколько строк для распарсивания файла :)

Авторизуйтесь или зарегистрируйтесь, чтобы оставить комментарий