2014-12-15 3 views
1

Я хочу проверить с помощью скрипта Perl, работает ли наш прокси-сервер или нет. Я проверил наш прокси-сервер с завитком командой, и она работала, как ожидалось:proxy using curl and perl

curl -x 'http://our_proxy:port' -v 'http://www.some_adult_site.com' 

Это дает мне следующий TCP выход потока в Wireshark:

GET http://www.some_adult_site.com/ HTTP/1.1 
User-Agent: curl/7.35.0 
Host: www.some_adult_site.com 
Accept: */* 
Proxy-Connection: Keep-Alive 

Когда я пытаюсь что с моим сценарием Perl:

#!/usr/bin/perl 

use LWP::UserAgent; 
use warnings; 

# forbidden URL 
$forbidden_url = URI->new('http://www.some_adult_site.com/'); 

# user agent to use a proxy 
$user_agent = LWP::UserAgent->new; 
$user_agent->proxy('http', 'http://our_proxy:port/'); 

# request 
$req = HTTP::Request->new(GET => $forbidden_url); 

# response 
$res = $user_agent->request($req); 

print $res->content; 

Я получаю 404 не найден страницу со следующим потоком TCP

GET http://www.some_adult_site.com/ HTTP/1.1 
Host: www.some_adult_site.com 
User-Agent: libwww-perl/6.05 

У вас есть какие-либо соображения, почему это не работает?

+1

Вы пытались установить 'agent'' curl/7.35.0'? – choroba

+0

Большое спасибо! :)) можете ли вы написать это как ответ, чтобы я мог его принять? –

ответ

2

Прокси-сервер или сайт могут отклонить некоторые пользовательские агенты. Попробуйте настроить агент на завиток (который вы знаете, чтобы работать), прежде чем вы сделаете запрос:

$user_agent->agent('curl/7.35.0');