NAME
Sys::HostIP - Try extra hard to get ip address related info
SYNOPSIS
use Sys::HostIP;
#class methods
my $ip_address = Sys::HostIP->ip;
# $ip_address is a scalar containing a best guess of your host machines ip
# address. It will return loopback (127.0.0.1) if it can't find anything
# else. This is also exported as a sub (to keep compatability with older versions).
my $ip_addresses = Sys::HostIP->ips;
# $ip_addresses is an array ref containing all the ip addresses of your
# machine
my $interfaces = Sys::HostIP->interfaces;
# $interfaces is a hash ref containg all pairs of interfaces/ip addresses
# Sys::HostIP could find on your machine.
Sys::HostIP->ifconfig("/somewhere/that/ifconfig/lives");
# you can set the location of ifconfig with this class method if the code
# doesn't seem to know where your ifconfig lives
DESCRIPTION
Sys::HostIP does what it can to determine the ip address of your machine. All 3 methods work fine on every *nix that I've been able to test on. (Irix, OpenBSD, FreeBSD, NetBSD, Solaris, Linux, OSX). It does this by parsing ifconfig(8) output. Unfortunately, I have no access to a Win32 machine, so this code is leftover from the old (1.0) version of this code (which i did not write) and thus, only the ip() method is trully implemented (*hint* patches are welcome).
EXPORT
ip(), ips(), interfaces(), and ifconfig(). Although this was written as a class, and using the class methods are preferred (I think this makes code much more readable).
AUTHOR
Jonathan Schatz <bluelines@divisionbyzero.com>
TODO
Rewrite this via XS and ifaddrlist from Net::RawIP (although this will ruin portability to non-*nix systems).
SEE ALSO
ifconfig(8)
perl.