#!/usr/bin/perl # # Written by Andrii Grytsenko 2009 # require LWP::UserAgent; use Getopt::Long; GetOptions( "f=s" => \$file, "v" => \$debug, "h" => \$help ); if (defined($help)){ print "-f file\t\tSpecify file\n"; print "-v\t\tTurn on verbose mode\n"; print "-h\t\tPrint this help\n"; exit; } if (!defined($file)) { print "Please specify the input file.\nExample: $0 -f /path/to/file\n"; exit; } my $ua = LWP::UserAgent->new; #$ua->cookie_jar(HTTP::Cookies->new(file => "lwpcookies.txt", autosave => 1)); $ua->timeout(10); $ua->env_proxy; @proxy_list=(); print "Try to open proxy list $file\n" if $debug; open(PR,"<$file"); while() { my $proxy=(split(" "))[0]; push(@proxy_list,$proxy); } close PR; foreach $proxy (@proxy_list) { my $proxy_cnt=0; my $last_ip=""; print "Connect to site over $proxy...\n" if $debug; eval { $ua->proxy('http', "http://$proxy/"); }; if ($@) { print "$@\n"; next; } my $response = $ua->get('http://2ip.ru/'); if ($response->is_success) { my $cont=$response->content; foreach my $str (split("\n",$cont)) { if ($str =~ m/(\d+\.\d+\.\d+\.\d+).*/) { if ($proxy_cnt == 1 ) { last if ($last_ip eq $1); print "The $proxy is not fully anonymous. You ip address is $1\n" ; last; } print "Success connected with IP=$1\nProxy $proxy is available for connections\n"; $last_ip=$1; $proxy_cnt++; } } } else { print "Connection was not established. The reason is :\n".$response->status_line."\n" if $debug; # print $response->status_line; } print "\n" if $debug; }