MirBSD manpage: Net::hostent(3p)

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


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


      use Net::hostent;


     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::"


      use Net::hostent;
      use Socket;

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

      for $host ( @ARGV ) {

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

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",
                 lc($h->name) eq lc($host) ? "" : "*really* ",

         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;


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


     Tom Christiansen

perl v5.8.8                2005-02-05                           2

Generated on 2022-12-24 01:00:14 by $MirOS: src/scripts/roff2htm,v 1.113 2022/12/21 23:14:31 tg Exp $ — This product includes material provided by mirabilos.

These manual pages and other documentation are copyrighted by their respective writers; their sources are available at the project’s CVSweb, AnonCVS and other mirrors. The rest is Copyright © 2002–2022 MirBSD.

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

Kontakt / Impressum & Datenschutzerklärung