S3.Blog

22 Декабря 2024
A A A   RSS-лента
"Я знаю, что ничего не знаю, но многие не знают и этого". Сократ [?].

Perl: LWP - работаем с Socks'ами

Дата последнего изменения: 17 Марта 2010
Метки статьи: Документация, Perl
Есть несколько вариантов работы LWP через Socks, вот некоторые из них.
 

  • Задача: на сервере есть несколько внешних IP. Надо сделать запрос на сайт http://google.com через один из них, минуя основной
    Решение:
    use LWP::UserAgent;
    
    my $ua  = new LWP::UserAgent;
    my $req = HTTP::Request->new(GET => 'http://google.com');
    @LWP::Protocol::http::EXTRA_SOCK_OPTS = (LocalAddr => IP-адрес, Reuse => 1 );
    my $res = $ua->request($req);
    
  • Задача: есть внешний сокс, через который надо пустить запрос на сайт http://google.com
    Решение: устанавливаем из cpan.org модуль LWP::Protocol::socks
    use LWP::UserAgent;
    
    my $ua  = new LWP::UserAgent;
    $ua->proxy([qw(http https)] => 'socks://IP-адрес:порт');
    my $req = HTTP::Request->new(GET => 'http://google.com');
    my $res = $ua->request($req);
    
     
  • Задача: есть несколько внешних соксов, надо организовать запросы через цепочки
    Решение: устанавливаем модуль LWP::Protocol::http::SocksChain  (для протокола https надо будет установить LWP::Protocol::https::SocksChain)
    use LWP::UserAgent;
    use LWP::Protocol::http::SocksChain;
    
    my $ua  = new LWP::UserAgent;
    my $req = HTTP::Request->new(GET => 'http://google.com');
    
    LWP::Protocol::implementor(http => 'LWP::Protocol::http::SocksChain' );
    @LWP::Protocol::http::SocksChain::EXTRA_SOCK_OPTS = (
    Chain_Len => 1,
    Debug => 0,
    Random_Chain => 1,
    Chain_File_Data => [
    'IP-адрес:порт',
    'IP-адрес:порт',
    'IP-адрес:порт'
    ],
    Auto_Save => 0,
    Restore_Type => 1
    );
    my $res = $ua->request($req);


Похожие материалы:




 
  Имя *:   Решите пример *: =
 
Полужирный Курсив Подчеркнутый Перечеркнутый
 
Вставить изображение Сделать цитатой Вставить ссылку Вставить код

Вставить смайл
 
 

 



© S3.Blog: Если критикуешь, не предлагая решения проблемы, то ты становишься частью этой проблемы.