http://paperlined.org/dev/src/pl/reddit/anon_proxy/proxy_checker.pl
#!/usr/bin/perl
use strict;
use warnings;
use LWP::UserAgent;
use LWP::Simple;
use Data::Dumper;
use List::Util;
my $proxy_list = "http://www.steganos.com/?area=updateproxylist";
#my $proxy_list = "http://ejohn.org/apps/anon/";
my @proxy_list = List::Util::shuffle(split ' ', LWP::Simple::get($proxy_list));
#print Dumper \@proxy_list; exit;
my $ua = LWP::UserAgent->new;
$ua->timeout(20);
my $number_found = 0;
foreach my $proxy (@proxy_list) {
$proxy = "http://$proxy" unless ($proxy =~ m#^http://#i);
print "Trying $proxy... "; $|=1;
$ua->proxy("http", $proxy);
my $response = $ua->get('http://reddit.com/');
if ($response->is_success) {
#print "Via $proxy:\n\n";
my $html = $response->content;
if ($html =~ m#<p\s*class="?menu"?>\s*view more:#si) {
print "\tSUCCESS: $proxy\n";
if ($number_found == 0) {
open FOUT, ">success.txt" or die;
} else {
open FOUT, ">>success.txt" or die;
}
$number_found++;
(my $p = $proxy) =~ s#^http://##si;
print FOUT "$p\n";
close FOUT;
} else {
print "\tUNKNOWN:\n$html\n"; exit;
}
} else {
print "\t", $response->status_line, "\n";
}
last if ($number_found > 20);
}
Generated by GNU enscript 1.6.4.