NAME

HTTP::CheckProxy - Perl module for testing for open proxies

SYNOPSIS

use HTTP::CheckProxy

DESCRIPTION

This module uses LWP to test the supplied IP address to see if it will promiscuosly proxy on port 80. Caution: this can have false alarms if you are on a network where you are supposed to go through a proxy, such as AOL -- but are you supposed to be running a webserver on such a network ?

If you feed this an invalid ip address, LWP will complain.

Note: while there is HTTP::ProxyCheck it is much slower, though it does a lot of input validation. HTTP::CheckProxy is intended to be useful in processing lots of candidate proxies and in recording useful information.

USAGE

my $open_proxy_test = HTTP::CheckProxy->new($ip);
print "proxy test for $ip returns ".$open_proxy_test->code."\n";
print ($open_proxy_test->guilty? "guilty" : "innocent");
$open_proxy_test->test($ip2);
print "proxy test for $ip2 returns ".$open_proxy_test->code."\n";
print ($open_proxy_test->guilty? "guilty" : "innocent");

BUGS

SUPPORT

Email bugs to the author.

AUTHOR

Dana Hudes
CPAN ID: DHUDES
dhudes@hudes.org
http://www.hudes.org

COPYRIGHT

This program is free software licensed under the...

The General Public License (GPL)
Version 2, June 1991

The full text of the license can be found in the LICENSE file included with this module.

SEE ALSO

perl(1).

new

Usage     : HTTP::CheckProxy->new($ip);
Purpose   : constructor
Returns   : object instance
Argument  : IPv4
Throws    : We should probably throw an exception if the ip address under test is unreachable
Comments  : 

See Also : HTTPD::ADS::AbuseNotify for sending complaints about validated proxies and other abuse.

test

Usage     : test($ip)
Purpose   : tries to fetch a known web page via the supplied ip as proxy.
Returns   : true (proxy fetch successful) or false (it failed to fetch)
Argument  : IPv4
Throws    : We should probably throw an exception if the ip address under test is unreachable
Comments  : Not all open proxies or compromised hosts listen on port 80 and their are other means              than straightforward HTTP to communicate with zombies but this is a start.

See Also : HTTPD::ADS::AbuseNotify for sending complaints about validated proxies and other abuse.

guilty

Usage     : $open_proxy_test->guilty
Purpose   : Is in fact the tested host guilty of being an open proxy?
Returns   : true (its an open proxy) or false (it isn't)
Argument  : none
Throws    : nothing
Comments  : This method checks the return status code of the test. If an error code is returned, esp. code 500, the host is not guilty. If the status code is success, the host is guilty.

See Also   : HTTPD::ADS::AbuseNotify for sending complaints about validated proxies and other abuse.

code

Usage     : $open_proxy_test->code
Purpose   : Return the status code of the proxy test
Returns   : HTTP status code
Argument  : none
Throws    : nothing
Comments  : 

See Also   : HTTPD::ADS::AbuseNotify for sending complaints about validated proxies and other abuse.