#!/usr/bin/perl -w
use strict;
use IO::Socket::INET;
sub fail {
print <<"EOF";
Status: 503
Content-type: text/plain
@_
EOF
exit;
}
if ($ENV{QUERY_STRING} !~ m!^http://google\.com/$!) {
print "Content-type: text/plain\n\nNope.";
exit;
}
my $sock = IO::Socket::INET->new(
PeerPort => scalar getservbyname("http", "tcp"),
PeerAddr => "google.com",
Proto => "tcp"
) or fail "Can't socket: $@";
print $sock "GET / HTTP/1.1\r\n";
print $sock "Host: google.com\r\n";
print $sock "Connection: close\r\n";
print $sock "X-Forwarded-For: $ENV{REMOTE_HOST}\r\n";
print $sock "\r\n";
print <$sock>;