Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages


home | help
Socket::GetAddrInfo::SUsertContributed Perl Socket::GetAddrInfo::Socket6api(3)

       "Socket::GetAddrInfo::Socket6api" - Provide Socket::GetAddrInfo
       functions using Socket6 API

	use Socket qw( AF_UNSPEC SOCK_STREAM );
	use Socket::GetAddrInfo::Socket6api qw(	getaddrinfo getnameinfo	);

	my $sock;

	my @res	= getaddrinfo( "", "www",	AF_UNSPEC, SOCK_STREAM );

	die "Cannot resolve name - $res[0]" if @res == 1;

	while( @res >= 5 ) {
	   my (	$family, $socktype, $protocol, $addr, undef ) =	splice @res, 0,	5, ();

	   $sock = IO::Socket->new();
	   $sock->socket( $family, $socktype, $protocol	) or
	     undef $sock, next;

	   $sock->connect( $addr ) or undef $sock, next;


	if( $sock ) {
	   my (	$host, $service	) = getnameinfo( $sock->peername );
	   print "Connected to $host:$service\n" if defined $host;

       Socket::GetAddrInfo provides the	functions of "getaddrinfo" and
       "getnameinfo" using a convenient	interface where	hints and address
       structures are represented as hashes. Socket6 also provides these
       functions, in a form taking and returning flat lists of values.

       This module wraps the functions provided	by "Socket::GetAddrInfo" to
       provide them in an identical API	to "Socket6". It is intended to	stand
       as a utility for	existing code written for the "Socket6"	API to use
       these functions instead.

   @res	= getaddrinfo( $host, $service,	$family, $socktype, $protocol, $flags
       This version of the API takes the hints values as separate ordered
       parameters.  Unspecified	parameters should be passed as 0.

       If successful, this function returns a flat list	of values, five	for
       each returned address structure.	Each group of five elements will
       contain,	in order, the "family",	"socktype", "protocol",	"addr" and
       "canonname" values of the address structure.

       If unsuccessful,	it will	return a single	value, containing the string
       error message. To remain	compatible with	the "Socket6" interface, this
       value does not have the error integer part.

   ( $host, $service ) = getnameinfo( $addr, $flags )
       This version of the API returns only the	host name and service name, if
       successfully resolved. On error,	it will	return an empty	list. To
       remain compatible with the "Socket6" interface, no error	information
       will be supplied.

       Paul Evans <>

perl v5.32.0			  2020-08-08Socket::GetAddrInfo::Socket6api(3)


Want to link to this manual page? Use this URL:

home | help