1The eg/ directory holds a few example proxies. 2 3All scripts accept HTTP::Proxy constructor key/value pairs on the 4command-line. Example: ./proxy.pl port 3128 host 0.0.0.0 5 6 * proxy.pl 7 8 A very simple proxy. 9 10 Filter: none 11 12 * anonymiser.pl 13 14 A simple anonymizing proxy, similar in functionnality to the one 15 shown by Randal L. Schwartz in his WebTechniques #11 column. 16 http://www.stonehenge.com/merlyn/WebTechniques/col11.html 17 18 Filter: HTTP::Proxy::HeaderFilter::simple 19 20 * proxy-auth.pl 21 22 A very simple proxy, with Basic authentication. 23 24 Filter: HTTP::Proxy::HeaderFilter::simple 25 26 * leet.pl 27 * rot13.pl 28 * rainbow.pl 29 * fudd.pl 30 31 These filters do simple modifications of all HTML pages. 32 33 Filters: HTTP::Proxy::BodyFilter::tags 34 HTTP::Proxy::BodyFilter::simple 35 HTTP::Proxy::BodyFilter::htmltext 36 37 * bork.pl 38 39 This ffiltir elsu duis simpli mudiffixeshuns uff ell HTML pegis. 40 Bork bork bork ! 41 42 * outline.pl 43 * ayb.pl 44 45 These proxy do more complicated modifications of HTML pages, and 46 require a HTML::Parser object to do so. All you tag are belong to us. 47 48 Filter: HTTP::Proxy::BodyFilter::htmlparser 49 50 * post.pl 51 52 This filter outputs the request URI and the form parameters of 53 all POST requests. 54 55 Filter: HTTP::Proxy::HeaderFilter::simple 56 57 * logger.pl 58 59 This filter outputs the important information out of GET and POST 60 requests: method, URI, cookies, content-type (text/*) and POST 61 request parameters. 62 63 Filter: HTTP::Proxy::HeaderFilter::simple 64 65 * adblock.pl 66 67 This is a very simple proxy that block ad sites. 68 69 Filters: HTTP::Proxy::HeaderFilter::simple 70 HTTP::Proxy::BodyFilter::simple 71 72 * trim.pl 73 74 A simple proxy that trims lines of HTML text. 75 76 Filters: HTTP::Proxy::BodyFilter::lines 77 HTTP::Proxy::BodyFilter::simple 78 79 * javascript.pl 80 81 A proxy that adds anything/javascript at the beginning of a HTML page. 82 (right after the <body> tag) 83 84 Filter: HTTP::Proxy::BodyFilter::htmlparser 85 86 * rfc.pl 87 88 A proxy that automatically saves the files named rfc\d+\.txt to 89 a file of the same name in the rfc/ directory. 90 91 Filter: HTTP::Proxy::BodyFilter::save 92 93 * dragon.pl 94 95 A proxy that removes some of the shortcomings of the Dragon Go 96 Server website (http://www.dragongoserver.net/) 97 98 Filters: HTTP::Proxy::HeaderFilter::simple 99 HTTP::Proxy::BodyFilter::simple 100 HTTP::Proxy::BodyFilter::tags 101 102 * pdf.pl 103 104 Save all PDF files in the pdf/ directory, and replace it with a 105 HTML message saying "PDF file saved." 106 107 Filters: HTTP::Proxy::HeaderFilter::simple 108 HTTP::Proxy::Body::simple 109 HTTP::Proxy::Body::save 110 111 * yahoogroups.pl 112 113 Removes the advertisment interruptions from Yahoo! Groups 114 115 Filter: HTTP::Proxy::HeaderFilter::simple 116 117 * https.pl 118 119 Modify https:// links to http:// links that the proxy will 120 recognise. The proxy will download the pages using SSL and 121 will then be able to modify them with its filter stacks. 122 123 Filters: HTTP::Proxy::HeaderFilter::simple 124 HTTP::Proxy::BodyFilter::htmlparser 125 126 * perlmonks.pl 127 128 Redirect all requests to perlmonks.com and perlmonks.org 129 to perlmonks.org, thus keeping connection information intact 130 (all cookies will point to a single web site). 131 132 This code was used as a starting point for the "Rewrite the web" 133 hack in Perl Hacks (O'Reilly 2006). 134 135 Filter: HTTP::Proxy::HeaderFilter::simple 136 137 * switch.pl 138 139 Randomly switch proxies from a list given on the command line. 140 141 Filter: HTTP::Proxy::HeaderFilter::simple 142 143 * tracker.pl 144 145 This tracker proxy stores Referer, URL, CODE 146 and output them to STDOUT or the given file 147 148 Example output: 149 NULL http://www.perl.org/ 200 150 http://www.perl.org/ http://learn.perl.org/ 200 151 152 Filter: HTTP::Proxy::HeaderFilter::simple 153 154 * js.pl 155 156 Save JavaScript files as we browse them. 157 158 Filter: HTTP::Proxy::Body::save 159 160 * flv.pl 161 162 Saves all FLV files in the flv/ directory, with a computed 163 name (id taken from the URI, or MD5 hash of the URI). 164 165 Filter: HTTP::Proxy::Body::save 166 167