The eg/ directory holds a few example proxies.
All scripts accept HTTP::Proxy constructor key/value pairs on the
command-line. Example: ./proxy.pl port 3128 host 0.0.0.0
* proxy.pl
A very simple proxy.
Filter: none
* anonymiser.pl
A simple anonymizing proxy, similar in functionnality to the one
shown by Randal L. Schwartz in his WebTechniques #11 column.
http://www.stonehenge.com/merlyn/WebTechniques/col11.html
Filter: HTTP::Proxy::HeaderFilter::simple
* proxy-auth.pl
A very simple proxy, with Basic authentication.
Filter: HTTP::Proxy::HeaderFilter::simple
* leet.pl
* rot13.pl
* rainbow.pl
* fudd.pl
These filters do simple modifications of all HTML pages.
Filters: HTTP::Proxy::BodyFilter::tags
HTTP::Proxy::BodyFilter::simple
HTTP::Proxy::BodyFilter::htmltext
* bork.pl
This ffiltir elsu duis simpli mudiffixeshuns uff ell HTML pegis.
Bork bork bork !
* outline.pl
* ayb.pl
These proxy do more complicated modifications of HTML pages, and
require a HTML::Parser object to do so. All you tag are belong to us.
Filter: HTTP::Proxy::BodyFilter::htmlparser
* post.pl
This filter outputs the request URI and the form parameters of
all POST requests.
Filter: HTTP::Proxy::HeaderFilter::simple
* logger.pl
This filter outputs the important information out of GET and POST
requests: method, URI, cookies, content-type (text/*) and POST
request parameters.
Filter: HTTP::Proxy::HeaderFilter::simple
* adblock.pl
This is a very simple proxy that block ad sites.
Filters: HTTP::Proxy::HeaderFilter::simple
HTTP::Proxy::BodyFilter::simple
* trim.pl
A simple proxy that trims lines of HTML text.
Filters: HTTP::Proxy::BodyFilter::lines
HTTP::Proxy::BodyFilter::simple
* javascript.pl
A proxy that adds anything/javascript at the beginning of a HTML page.
(right after the <body> tag)
Filter: HTTP::Proxy::BodyFilter::htmlparser
* rfc.pl
A proxy that automatically saves the files named rfc\d+\.txt to
a file of the same name in the rfc/ directory.
Filter: HTTP::Proxy::BodyFilter::save
* dragon.pl
A proxy that removes some of the shortcomings of the Dragon Go
Server website (http://www.dragongoserver.net/)
Filters: HTTP::Proxy::HeaderFilter::simple
HTTP::Proxy::BodyFilter::simple
HTTP::Proxy::BodyFilter::tags
* pdf.pl
Save all PDF files in the pdf/ directory, and replace it with a
HTML message saying "PDF file saved."
Filters: HTTP::Proxy::HeaderFilter::simple
HTTP::Proxy::Body::simple
HTTP::Proxy::Body::save
* yahoogroups.pl
Removes the advertisment interruptions from Yahoo! Groups
Filter: HTTP::Proxy::HeaderFilter::simple
* https.pl
Modify https:// links to http:// links that the proxy will
recognise. The proxy will download the pages using SSL and
will then be able to modify them with its filter stacks.
Filters: HTTP::Proxy::HeaderFilter::simple
HTTP::Proxy::BodyFilter::htmlparser
* perlmonks.pl
Redirect all requests to perlmonks.com and perlmonks.org
to perlmonks.org, thus keeping connection information intact
(all cookies will point to a single web site).
This code was used as a starting point for the "Rewrite the web"
hack in Perl Hacks (O'Reilly 2006).
Filter: HTTP::Proxy::HeaderFilter::simple
* switch.pl
Randomly switch proxies from a list given on the command line.
Filter: HTTP::Proxy::HeaderFilter::simple
* tracker.pl
This tracker proxy stores Referer, URL, CODE
and output them to STDOUT or the given file
Example output:
NULL http://www.perl.org/ 200
http://www.perl.org/ http://learn.perl.org/ 200
Filter: HTTP::Proxy::HeaderFilter::simple
* js.pl
Save JavaScript files as we browse them.
Filter: HTTP::Proxy::Body::save
* flv.pl
Saves all FLV files in the flv/ directory, with a computed
name (id taken from the URI, or MD5 hash of the URI).
Filter: HTTP::Proxy::Body::save