MirOS Manual: Net::hostent(3p)


Net::hostent(3p)Perl Programmers Reference Guide Net::hostent(3p)

NAME

     Net::hostent - by-name interface to Perl's built-in
     gethost*() functions

SYNOPSIS

      use Net::hostent;

DESCRIPTION

     This module's default exports override the core gethost-
     byname() and gethostbyaddr() functions, replacing them with
     versions that return "Net::hostent" objects.  This object
     has methods that return the similarly named structure field
     name from the C's hostent structure from netdb.h; namely
     name, aliases, addrtype, length, and addr_list.  The aliases
     and addr_list methods return array reference, the rest
     scalars.  The addr method is equivalent to the zeroth ele-
     ment in the addr_list array reference.

     You may also import all the structure fields directly into
     your namespace as regular variables using the :FIELDS import
     tag.  (Note that this still overrides your core functions.)
     Access these fields as variables named with a preceding
     "h_".  Thus, "$host_obj->name()" corresponds to $h_name if
     you import the fields.  Array references are available as
     regular array variables, so for example "@{
     $host_obj->aliases() }" would be simply @h_aliases.

     The gethost() function is a simple front-end that forwards a
     numeric argument to gethostbyaddr() by way of
     Socket::inet_aton, and the rest to gethostbyname().

     To access this functionality without the core overrides,
     pass the "use" an empty import list, and then access func-
     tion functions with their full qualified names. On the other
     hand, the built-ins are still available via the "CORE::"
     pseudo-package.

EXAMPLES

      use Net::hostent;
      use Socket;

      @ARGV = ('netscape.com') unless @ARGV;

      for $host ( @ARGV ) {

         unless ($h = gethost($host)) {
             warn "$0: no such host: $host\n";
             next;
         }

perl v5.8.8                2005-02-05                           1

Net::hostent(3p)Perl Programmers Reference Guide Net::hostent(3p)

         printf "\n%s is %s%s\n",
                 $host,
                 lc($h->name) eq lc($host) ? "" : "*really* ",
                 $h->name;

         print "\taliases are ", join(", ", @{$h->aliases}), "\n"
                     if @{$h->aliases};

         if ( @{$h->addr_list} > 1 ) {
             my $i;
             for $addr ( @{$h->addr_list} ) {
                 printf "\taddr #%d is [%s]\n", $i++, inet_ntoa($addr);
             }
         } else {
             printf "\taddress is [%s]\n", inet_ntoa($h->addr);
         }

         if ($h = gethostbyaddr($h->addr)) {
             if (lc($h->name) ne lc($host)) {
                 printf "\tThat addr reverses to host %s!\n", $h->name;
                 $host = $h->name;
                 redo;
             }
         }
      }

NOTE

     While this class is currently implemented using the
     Class::Struct module to build a struct-like class, you
     shouldn't rely upon this.

AUTHOR

     Tom Christiansen

perl v5.8.8                2005-02-05                           2

Generated on 2014-07-04 21:17:45 by $MirOS: src/scripts/roff2htm,v 1.79 2014/02/10 00:36:11 tg Exp $

These manual pages and other documentation are copyrighted by their respective writers; their source is available at our CVSweb, AnonCVS, and other mirrors. The rest is Copyright © 2002‒2014 The MirOS Project, Germany.
This product includes material provided by Thorsten Glaser.

This manual page’s HTML representation is supposed to be valid XHTML/1.1; if not, please send a bug report – diffs preferred.