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

Jay Strauss vox-tech@lists.lugod.org
Thu, 26 Jun 2003 14:05:56 -0500


#!/usr/bin/perl
my @ip = (`ifconfig` =~ m/addr:([^\s]+)\s/);
print join(":",@ip),"\n";

NOTE: run this a root (or someone who has access ifconfig),  I didn't and it
took me 10 mins before I figured out my script was right but my user was
wrong

Jay
----- Original Message -----
From: "Peter Jay Salzman" <p@dirac.org>
To: <vox-tech@lists.lugod.org>
Sent: Thursday, June 26, 2003 1:35 PM
Subject: Re: [vox-tech] Perl question: determining the computer's IP address


> sure.  you just need to be a little creative.
>
> for machines with one IP address (disregarding lo), just use the output
> of ifconfig with a little regex handling:
>
> p@satan$ ifconfig
> eth0      Link encap:Ethernet  HWaddr 00:C0:F0:48:DF:5A
>           inet addr:192.168.0.2  Bcast:192.168.0.255  Mask:255.255.255.0
>           ^^^^^^^^^^^^^^^^^^^^^
>           you want this.
>
>
> pete
>
>
> On Thu 26 Jun 03, 10:57 AM, Richard Crawford <rscrawford@mossroot.com>
said:
> > 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?
> >
> > On a side note, the script I've written works, but it's clumsy and
> > inelegant.  Is there anyone who'd be willing to look at my code and make
> > suggestions for cleaning it up?
> >
> > --
> > Sliante,
> > Richard S. Crawford
>
> --
> GPG Instructions: http://www.dirac.org/linux/gpg
> GPG Fingerprint: B9F1 6CF3 47C4 7CD8 D33E 70A9 A3B9 1945 67EA 951D
> _______________________________________________
> vox-tech mailing list
> vox-tech@lists.lugod.org
> http://lists.lugod.org/mailman/listinfo/vox-tech
>
>