使用curl和perl的代理

时间:2014-12-15 09:14:15

标签: perl curl tcp proxy

我想用Perl脚本检查我们的代理是否正常工作。我使用curl命令测试了我们的代理,它按预期工作:

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

这使我能够在Wireshark中输出以下TCP流:

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 个答案:

答案 0 :(得分:2)

代理或网站可能会拒绝某些用户代理。在发出请求之前,请尝试将代理设置为curl(您知道可以使用):

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