in reply to $ENV{REMOTE_HOST} not set on new server?

Run this script to have a look at your environment:

#!/usr/bin/perl -wT use strict; print "Content-type: text/html\n\n"; print "<p><b>$_</b><br>$ENV{$_}\n" for sort keys %ENV;

What I expect you will find is the REMOTE_ADDR contains a value but REMOTE_HOST does not. This occurs because reverse DNS lookups need to be enabled on the server to allow your server to convert REMOTE_ADDR into a hostname.

You should be able to convert REMOTE_ADDR into a hostname yourself using gethostbyaddr():

use Socket; $iaddr = gethostbyname('www.perlmonks.com'); $name = gethostbyaddr($iaddr, AF_INET); print $name;

cheers

tachyon

s&&rsenoyhcatreve&&&s&n.+t&"$'$`$\"$\&"&ee&&y&srve&&d&&print