Net::hostent
use Socket; use Net::hostent; print inet_ntoa(gethost("www.perl.com")->addr); # prints 208.201.239.50 printf "%vd", gethost("www.perl.com")->addr; # same thing print gethost("127.0.0.1")->name; # prints localhost use Net::hostent ':FIELDS'; if (gethost($name_or_number)) { print "name is $h_name\n"; print "aliases are $h_aliases\n"; print "addrs are ", join ", " => map { inet_ntoa($_) } @h_addr_list; }
This module's default exports override the core
gethostbyname
and gethostbyaddr
functions, replacing them with versions that return a
Net::hostent
object (or undef
on
failure). This object has attribute accessor methods that return the
like-named structure field name from the C library's struct
hostent
from netdb.h:
name
, aliases
,
addrtype
, length
, or
addr_list
. The aliases
and
addr_list
methods return array references; the rest
return scalars. The addr
method is equivalent to
the initial element in the addr_list
array
reference. The gethost
function is a frontend that
forwards a numeric argument to gethostbyaddr
by way
of the Socket::inet_aton
function
and the rest to gethostbyname
. As with the other
semipragmatic modules that override list-returning built-ins, if you
import the ":FIELDS
" tag, you can access scalar or
array package variables by the same names as the method calls by using
a leading "h_
". This still overrides your core
functions, though.
Get Programming Perl, 3rd Edition now with the O’Reilly learning platform.
O’Reilly members experience books, live events, courses curated by job role, and more from O’Reilly and nearly 200 top publishers.