Forum Webscript.Ru
Программирование => Perl => Тема начата: scainen от 18 Апреля 2006, 15:50:21
-
Вот скрипт отправляет запрос на сервер
#!/usr/bin/perl
print "Content-Type: text/html\\n\\n";
use IO::Socket;
$url = "http://ws.ru";
use LWP::UserAgent;
$ua = LWP::UserAgent->new;
$a="";
my $req = HTTP::Request->new(POST=>$url);
$req->content_type(\'application/x-www-form-urlencoded\');
$req->content("$a");
my $res = $ua->request($req);
$r=$res->content;
как сделать чтобы он отправлял этот-же запрос но через proxy сервер ?
что дописать ? где исправить? Или можно по-другому сделать ?
-
http://search.cpan.org/~reatmon/IO-Socket-Socks-0.1/lib/IO/Socket/Socks.pm
-
http://search.cpan.org/~gaas/libwww-perl-5.805/lib/LWP/UserAgent.pm#Proxy_attributes
-
не совсем понятно зачем здесь IO::Socket?
Вот кусок одного из моих скриптов, для примера.
## Инициализируем объект UserAgent\'a
my $ua=new LWP::UserAgent;
$ua->proxy(\'http\', "http://$config->{\'proxy\'}/") if(exists $config->{\'proxy\'});# из конфигов
$ua->timeout($config->{\'timeout\'});# конфиг
$ua->agent($config->{\'agent\'});# конфиг
$ua->cookie_jar(HTTP::Cookies->new(file=>"$config->{\'cookies\'}", autosave=>1,ignore_discard=>1));# файл - из конфигов
-
А если без модуля LWP то можно так:
use IO::Socket::INET;
my $sock = IO::Socket::INET->new(PeerAddr => "proxyhost:port", Timeout => 1);
send($sock,"GET http://www.google.ru/ HTTP/1.0\\r\\n\\r\\n",0);
print while <$sock>;
close $sock;