## A more useful proxy hunter, v1.0 (bugs, suggestions to wayne@nym.alias.net) ## This program will run anywhere and find web proxies for you to use. The proxies found are: ## accessable from where the program is run ## listening ## not access-controlled for you ## uncensored (I use http://www.sex.com/ as a test, and assume that if this is not censored by the proxy then ## there is no censorship in place ## at least as fast as you specify ## requirements: ## a system with perl (http://www.activestate.com/ for win32 systems, http://www.perl.org/ for linux) ## perl module LWP installed ## remove the '#' from statements below to activate them, or add one to deactivate them ## the defaults below are set for running from Panix # the country where this program is to run, should be one of: 'UAE', 'KSA', 'China' or 'free' # use 'free' if you want to run this from an unblocked account (e.g. Panix). # if you don't know which ports are blocked for you, run this with 'free' and the program will find out # but it will take a long time to do it. $country='free'; # add a proxy only if necessary - this must be accessable from wherever this program is run # not necessary if the program is run from a 'free' account, for example Panix. #$useProxy='204.167.162.101:82'; # speed requirements - your minimum acceptable proxy speed (as determined by virtualave) $minSpeed=10000; #Once you have this program running, with a good proxy above etc., #you may want to bump this up to 30000 or so, to get the fastest proxies only. # modify this if you are sure (and please let me know of any confirmed changes to this list) $blockedPorts{'free'}=''; $blockedPorts{'UAE'}='#80#81#1080#3128#8000#8001#8002#8003#8080#8081#'; $blockedPorts{'KSA'}='#119#8080#9090#'; $blockedPorts{'China'}=''; # i don't know exactly what ports are blocked here - info please! # number of lines to check in the virtualave proxy test log $proxyLogLines=2000; # his default on the web page is 2000 lines, but this gets the number you ask for ############### don't modify anything below here unless you know what you are doing ################ $knownBlockedPorts=$blockedPorts{$country}; # Create a user agent object use LWP::UserAgent; $ua = new LWP::UserAgent; $ua->agent("AgentName/0.1 " . $ua->agent); if ($useProxy) {$ua->proxy(['http'], "http://$useProxy/")}; # Create a request #my $req = new HTTP::Request POST => 'http://prx3.virtualave.net/cgi-bin/fp.pl?showlog'; my $req = new HTTP::Request POST => 'http://prx3.virtualave.net/cgi-bin/fp.pl/showlines?lines='.$proxyLogLines; #$req->content_type('application/x-www-form-urlencoded'); #$req->content('match=www&errors=0'); # Pass request to the user agent and get a response back my $res = $ua->request($req); #open A, "is_success) { $list=$res->content; # while($res=) { while ($list=~m|^
  • (.*):(\d+) (\d+) (\d+)-(\d+)-(\d+)$|mg) { ($host, $port, $speed, $year, $month, $day) = ($1, $2, $3, $4, $5, $6); # print pos($list), "\n"; if (($host) and ($knownBlockedPorts!~/#$port#/) and ($speed>$minSpeed)) { print "testing: $host, $port, $speed, $year, $month, $day\n"; $proxyUa = new LWP::UserAgent; $proxyUa->proxy(['http'], "http://$host:$port/"); my $proxyReq = new HTTP::Request POST => 'http://www.sex.com/'; my $proxyRes=$proxyUa->request($proxyReq); if (($proxyRes->is_success) and ($proxyRes->content=~/Hottest Cheerleaders/)) {print "$host:$port (speed: $speed) is working\n";}; undef $proxyUa; } }; };