#!/usr/bin/perl use IO::Socket; my $sd = new IO::Socket::INET( LocalPort => '8080', Proto => 'tcp', Listen => 1, Reuse => 1, ); die "Impossibile creare il socket: $!\n" unless $sd; while (1) { my $new_sd=$sd->accept(); my ($host,$port,$data); $port=80; print "Connessione da ".$new_sd->peerhost()."\n"; $pack=''; while (<$new_sd>) { $pack.=$_; last if ($pack =~ /\r\n\r\n/ or $pack =~ /\n\n/); } if ($pack =~ /Host:[\s]*([^\s]*)/) { $host=$1; } my $proxy = new IO::Socket::INET( PeerAddr => "$host", PeerPort => "$port", Proto => 'tcp', ); print $new_sd "Impossibile creare il socket: $!\n" && last if (!$proxy); print $proxy "$pack\n\n"; while (<$proxy>) { print $new_sd $_; } close($proxy); close($new_sd); } close ($sd);