#!/usr/bin/perl use strict; use warnings; use HTTP::Proxy; use HTTP::Recorder "0.03_01"; # Set everything to undef if you have no proxy-servers # in your organisation my %whoami = ( # listen to every network interface on this machine: # host => undef, # host => "127.0.0.1", # listen only to network interface 10.1.1.5 host => "10.95.81.5", # which is the port I shall listen port => "3128", ); # this is for forwarding all requests to my proxy in the company my %proxy = ( host => "http://proxy.zdf:3128", user => undef, pass => undef, ); # set HTTP::Recorder as the agent my $agent = HTTP::Recorder->new( # Log to a file # file => "/tmp/tmpfile", file => "proxy.log", showwindow => 1); # Set my own proxy to forward requests $agent->proxy( "http", $proxy{host} ) if $proxy{host}; my $request->proxy_authorization_basic( @proxy{ qw/user pass/ } ) if $proxy{user}; my $proxy = HTTP::Proxy->new; $proxy->agent( $agent ); $proxy->port(8080); $proxy->init; $proxy->port( $whoami{port} ) if $whoami{port}; # Set how I get soon from my users if ( $whoami{host} ) { # My interface to be reached $proxy->host( $whoami{host} ); } # My port to be reached $proxy->port( $whoami{port} ); # you may need to set the host print "Your proxy-server in your web-browser shall be:\n"; printf "\t%s:%s\n", $whoami{host} ? $whoami{host} : "the_host_i_run", $whoami{port} ? $whoami{port} : 8080; print "Navigate to http://http-recorder/ to download the script\n"; print "\twhich has been generated\n"; $proxy->start;