ProxyTools overview
These tools should work on any system where Perl is provided.
Install Perl from http://www.activestate.com/,
or (if you are on a Unix system) CPAN.
Get the latest release of the proxyTools package at sourceforge.
If you are willing to experiment, get the latest development versions
(bugs and all!) of the individual files from sourceforge CVS. Follow
the 'browse CVS' links into localProxy2 or proxyTools directory, then
click the version number of the file you want, then click the download
link. For example to get v1.70 of findProxy.pl, you end up here:http://cvs.sourceforge.net/cgi-bin/viewcvs.cgi/~checkout~/
proxytools/proxyTools/findProxy.pl?rev=1.70
Note that you should use a CVS client to get the development versions,
but it is possible to do it file by file using your web browser (see the FAQ for instructions).
If you got a distribution, unzip it to (say) c:\proxyTools.
If you got individual CVS files, just copy them on top of the old
versions.
Open a command shell (command prompt, DOS shell, BASH shell etc.).
Normally (Windows users) this is on your Start menu (programs, or
programs|accessories).
cd /d c:\proxyTools
The tools provided cover the following areas:
- analysis of your ISP's firewall rules to determine blocked ports
(master.pl)
- analysis of your system, environment and any hints you provide to
determine the name servers to use, the proxies you have access to, the
services you have access to and any special subnets you may be able to
access (master.pl, statProxy.pl)
- analysis of proxies found (a very comprehensive test suite is run
by statProxy)
- extraction (and basic tests) from many formats of lists of
proxies in files, URLs, or even mail and forum/bbs messages (findProxy,
statProxy)
- sorting proxy files, merging, deduping, 'safe'ing and reverse
resolution (sortProxy)
- database management with reliability and uptime calculated
(mergeHosts). This also allows the user to maintain a personal database
of proxies which overrides those in the distribution database when used
with localProxy.
- extraction/reports from the proxy database with multiple
selection parameters like proxy capabilities and proxy location
(extractHosts)
- a local proxy which attempts to build a usable configuration from
all of the above information, and provide you with services you can use
without worrying about proxies dying, inaccessible, censoring, down etc.
The services which are provided are non-censoring, reliable, as fast as
your proxy database can supply, etc.
- a logger which will tell you everything your clients are sending
and receiving (localProxy)
- an XML database maintained by myself (with test reports from
others) containing thousands of proxies with their capabilities,
properties, uptime, reliability , access info and speeds (hosts.xml)
- many other useful XML databases containing information like known
firewalls (blocked ports, proxies, name servers etc.)
An example to get you started
Having unzipped the package as above, you are ready to try one of the
tools.
I'll use an old version of findProxy as an example, and to give you the
flavor of these things.
Note that all the proxyTools behave in a similar manner.
See findProxy for a more detailed
explanation of the findProxy options.
perl findProxy.pl -h
You will see some help information:
Usage: findProxy [-options] <url>
-f <file>
Use a configuration file (command line options still
override)
-F <firewall> Ignore proxies
blocked by this firewall (defaults
to the firewall determined from the test locn address,
or to 'firewall-none'
-c <country> Set country to
test proxies for (default UAE)
-i <port list> Ignore proxies on these
ports (default 23,12000)
-t <timeout> Set timeout
value (default 60 secs)
-p <proxyurl> The URL of the proxy
to use to get the proxy list,
or 'none' (default is a UAE proxy)
-v
Show program version
-h
Print this message
-q
Quiet - don't list the proxy list, and no beeps etc.
(default noisy)
-r
Reference URL and pattern ('#' separated) or
'none' (extract proxies only, no tests are done)
-C
Use CONNECT to test each proxy in the list (default off)
-P <proxyurl> Use CONNECT via this
proxy
Note: if no -p proxy is specified, the default
for -C is a UAE CONNECT proxy
-w
On completion, wait for a GUI user to close
the window (default no wait)
-n [start,end] Check a range of URLs
(increment %COUNT% in the url)
Even more detail may be obtained from the embedded documentation:
perldoc findProxy.pl
Run findProxy, without a configuration file (specifying all parameters
on the command line) like this (on one line):
perl findProxy.pl -F UAE-dialup -C -P
http://CONNECT.proxy.address:8080/
http://www.angelfire.com/my/6waynes/checkedPublicProxies.html
In the UAE, you can leave out the CONNECT proxy specification because
the code will add one for you. To handle this more easily, edit one of
the configuration files with the information you want on the command
line and run findProxy like this:
perl findProxy.pl -f configFileName.rc
Much easier, but the parameters are hidden.
Note: the above example is probably out of date - see the up to date
help for findProxy here.
My old site is at: http://www.angelfire.com/my/6waynes
but I'm downgrading it's use as a file repository because angelfire
became quite unreliable for that purpose. The site will remain as the
maintained site for information, but sourceforge
is now the preferred site for proxyTools file distributions. Lists of
proxies are all distributed as part of the proxyTools distribution (in
hosts.zip) now.
wayne@nym.alias.net