[Chicago-talk] Any handy operators for finding the local IP?

Richard Reina richard at rushlogistics.com
Wed Mar 23 04:56:00 PST 2005


Steve,

Thanks that code seems a lot more of a foolproof than
the hostname function that I am using now.  I'll give
it a try.  Thanks again.  Hope you are well. Hows NY? 

Richard
--- Steven Lembark <lembark at wrkhors.com> wrote:

> 
> 
> -- Richard Reina <richard at rushlogistics.com>
> 
> > I know there's a handy $< to find the UID of the
> user
> > executing the prorgram.  Is there any handy
> operator
> > to find the IP address of the local machine that
> is
> > running the program.
> 
> If you know the interface name it's not at all
> difficult
> to parse ifconfig's output:
> 
> 	x qx(/sbin/ifconfig eth0) =~ /inet addr:(\S+)/
> 	0  '192.168.1.2'
> 
> If you're writing local code then the interface name
> is a reasonable guess. For the general case you can
> use:
> 
> 	  DB<5> x ( $a = qx( /sbin/ifconfig ) ) =~ /inet
> addr:(\S+)/g
> 	0  '192.168.1.2'
> 	1  '192.168.15.2'
> 	2  '127.0.0.1'
> 	
> And pick the one that seems most useful (e.g. the
> lowest subnet).
> 
> If all of your hosts are singly-homed (which the
> example
> above is NOT) then filtering out 127.0.0.1 works. In
> most
> cases you know the subnet you're ineterested in and
> can
> search for that:
> 
> 		  DB<6> x ( $a = qx( /sbin/ifconfig ) ) =~ /inet
> addr:(192.168.\S+)/g
> 	0  '192.168.1.2'
> 	1  '192.168.15.2'
> 
> Which would give you a single value on most systems
> (this
> was run in perl -d on a basion host with DMZ and LAN
> interfaces).
> 
> 
> 
> -- 
> Steven Lembark                                      
> 85-09 90th Street
> Workhorse Computing                               
> Woodhaven, NY 11421
> lembark at wrkhors.com                                 
>    1 888 359 3508
> _______________________________________________
> Chicago-talk mailing list
> Chicago-talk at pm.org
> http://mail.pm.org/mailman/listinfo/chicago-talk
> 



More information about the Chicago-talk mailing list