---
name: "Socket::GetAddrInfo::Socket6api"
section: "3pm"
platform: "linux"
package: "libsocket-getaddrinfo-perl"
version: "0.22-6"
release: "Debian 13 (Trixie)"
platforms: ["linux"]
url: "https://new.carta.tech/Socket::GetAddrInfo::Socket6api"
---

# Socket::GetAddrInfo::Socket6api(3pm)

Provide Socket::GetAddrInfo functions using Socket6 API

## NAME

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

## SYNOPSIS

```
 use Socket qw( AF_UNSPEC SOCK_STREAM );
 use Socket::GetAddrInfo::Socket6api qw( getaddrinfo getnameinfo );
 my $sock;
 my @res = getaddrinfo( "www.google.com", "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;
    last;
 }
 if( $sock ) {
    my ( $host, $service ) = getnameinfo( $sock->peername );
    print "Connected to $host:$service\n" if defined $host;
 }
```

## DESCRIPTION

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.

## FUNCTIONS

### @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.

## AUTHOR

Paul Evans \<leonerd@leonerd.org.uk\>
