2015-05-11 6 views
0

Я пытаюсь выполнить тесты на загрузке своих серверов с помощью нескольких прокси. К тому времени, когда я получаю свой ip через api.ipify.org. Консоль выводит мой истинный ip, а не прокси-сервер ip.Использование прокси с WWW :: Mechanize

use strict; use warnings; 
    use WWW::Mechanize; 
    my $file = "proxies.txt"; 
    open (FH, "< $file") or die "Can't open $file for read: $!"; 
    my @lines = <FH>; 
    close FH or die "Cannot close $file: $!"; 
    print "Loaded proxy list"; 
    my $m = WWW::Mechanize->new(
     autocheck => 1, 
     agent_alias => 'Mozilla', 
     cookie_jar => {}, 
     ssl_opts => {verify_hostname => 0}, 
     quiet => 0, 
    ); 
    my $httpl = "http://"; 
    $m->no_proxy('localhost'); 
    my $ua = LWP::UserAgent->new; 
    for(my $i=0; $i < 47; $i++) 
    { 
    $m->proxy('http', $httpl . '' . $lines[$i]); 
    print "Connecting to proxy " . $lines[$i]; 
    $m->get("https://api.ipify.org?format=json"); 
    print $m->content; 
    for(my $j = 0; $j <= 10; $j++){ 
    $m->get("http://example.com"); 
    system("node genran.js"); 
    $m->post('http://example.com/upload.php', 
     Content_Type => "form-data", 
     Content => [ 
      'password' => '', 
      'public' => 'yes', 
      'uploadContent' => [ 'spam.txt', 'Love pecons', 'Content_$ 
      file => [ 'x86.png', 'image_name', 'Content-Type' => 'ima$ 
     ] 
    ); 

    print $m->content; 
    }} 

ответ

2
$m->proxy('http', $httpl . '' . $lines[$i]); 
print "Connecting to proxy " . $lines[$i]; 
$m->get("https://api.ipify.org?format=json"); 

Вы можете установить только прокси для HTTP, но сделать запрос по протоколу HTTPS. Вы должны установить прокси для HTTPS тоже так:

$m->proxy('https', ... put your https proxy here ...); 

Или использовать один и тот же прокси-сервер для нескольких протоколов:

$m->proxy(['http','https'], ...); 

Кроме того, убедитесь, что вы используете по крайней мере, версия 6.06 из LWP: : UserAgent и LWP :: Protocol :: https для правильной поддержки прокси с https, т. Е.

use LWP::UserAgent; 
print LWP::UserAgent->VERSION,"\n"; 

use LWP::Protocol::https; 
print LWP::Protocol::https->VERSION,"\n"; 
+0

Im довольно новый для perl (началось программирование вчера). Не могли бы вы объяснить, как я могу установить прокси для https и проверить версии модулей? – Rarw

+0

@Rarw: см. Отредактированный ответ –

 Смежные вопросы

  • Нет связанных вопросов^_^