[vox-tech] Perl question: determining the computer's IP address

Micah J. Cowan vox-tech@lists.lugod.org
Thu, 26 Jun 2003 13:42:42 -0700


On Thu, Jun 26, 2003 at 01:12:03PM -0700, Tim Riley wrote:
> 
> 
> Tim Riley wrote:
> 
> > Richard Crawford wrote:
> >
> > > I have a Perl script that I've written and which runs on a couple of
> > > different web servers.  Because the script rewrites some .html files that
> > > call on cgi-scripts, the script needs to know the IP address of the
> > > computer that it's running on.  Is there an environmental variable or
> > > something that I can call within Perl to find out the IP address so that I
> > > don't have to manually recode it on each server?
> >
> > Apache should set the server IP address in the HTTP_HOST variable.
> 
> My bad; it's the SERVER_ADDR variable. HTTP_HOST is the client address.
> Although, extracting it from ifconfig is a good suggestion.

HTTP_HOST is the value of the Host: HTTP Header field that the browser
sent to the server, for purposes of distinguishing multiple hostnames
on a single machine/IP-address. Also, older browsers which use
HTTP/1.0 don't have to send a Host header, so HTTP_HOST might not be
defined. Better to use SERVER_NAME.

HTH,
Micah