我想用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
你有什么建议,为什么这不起作用?
答案 0 :(得分:2)
代理或网站可能会拒绝某些用户代理。在发出请求之前,请尝试将代理设置为curl(您知道可以使用):
$user_agent->agent('curl/7.35.0');