The Perl Toolchain Summit needs more sponsors. If your company depends on Perl, please support this very important event.

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.