Usa $_SERVER['REMOTE_HOST'] (si usas PHP 4.1.0 o superior) ... El caso es usar la variable de servidor "HTTP_HOST" .. Eso te devuelve el "host" del cliente que está ejecutando el script (no del que corre PHP que sería el tuyo) .. El "referrer" te intentaría dar el de la -anteriror- página que lo llamó .. y .. en ese caso tal vez no exista (sobre todo si se llama directo y no vinculado en un link por ejemplo)
más info y más variables de servidor ..
http://www.php.net/variables.predefined
Un saludo,