GETADDRINFO(1)

NAME
getaddrinfo - resolve names to socket addresses

SYNOPSIS
getaddrinfo [-cNnP] [-f family] [-p protocol] [-s service[/protocol]] [-t socktype] [hostname]

DESCRIPTION
The getaddrinfo utility resolves host and service names to socket addresses with getaddrinfo(3) and prints them to standard output in a user-friendly format.

The output is a sequence of lines with space-separated fields:

    socket-type address-family protocol [af-specific data ...]

For the “inet” and “inet6” address families, the af-specific data are the IP/IPv6 address and port number.

Depending on the settings in nsswitch.conf(5), getaddrinfo might query DNS for answers. However, it is not intended to be a general-purpose DNS query utility. Use drill(1) for that.

These options are available:

-c  Look up a canonical name as if with the AI_CANONNAME flag to getaddrinfo(3) and print it on the first line before the socket addresses.

-f family
    Specify an address family. Address families are named like the AF_... constants for address family numbers in the <sys/socket.h> header file but without the AF_ prefix and lowercase. For example, “inet” corresponds with AF_INET.

-N  Treat the service as numeric and do not attempt service name resolution, as if with the AI_NUMERICSERV flag to getaddrinfo(3).

-n  Treat the hostname as a numeric address and do not attempt name resolution, as if with the AI_NUMERICHOST flag to getaddrinfo(3).

-P  Return socket addresses intended for use with bind(2), as if with the AI_PASSIVE flag to getaddrinfo(3). By default, the socket addresses are intended for use with connect(2), sendto(2), or sendmsg(2).

-p protocol
    Specify a protocol. Protocols are numeric or symbolic as listed in protocols(5).

-s service[/protocol]
    Specify a service to look up. Services are symbolic or numeric with an optional protocol suffix as listed in services(5). If a service is not specified, a hostname is required.

-t socktype
    Specify a socket type. Socket types are named like the SOCK_... constants for socket type numbers in the <sys/socket.h> header file but without the SOCK_ prefix and lowercase. For example, “dgram” corresponds with SOCK_DGRAM.

EXIT STATUS

EXAMPLES
Look up “www.NetBSD.org”:

    $ getaddrinfo www.NetBSD.org
    dgram inet6 udp 2001:4f8:3:7:2e0:81ff:fe52:9ab6 0
    dgram inet udp 149.20.53.67 0
    stream inet6 tcp 2001:4f8:3:7:2e0:81ff:fe52:9ab6 0
    stream inet tcp 149.20.53.67 0

The port number here is zero because no service was specified.

Look up “morden.NetBSD.org” for stream sockets on port 80, and show the canonical name:

    $ getaddrinfo -c -t stream -s 80 morden.NetBSD.org
    canonname ftp.NetBSD.org
    stream inet6 tcp 2001:470:1f05:3d::21 80
    stream inet tcp 199.233.217.249 80

SEE ALSO
drill(1), getent(1), getaddrinfo(3), getnameinfo(3), resolver(3), hosts(5), nsswitch.conf(5), protocols(5), resolv.conf(5), services(5)

HISTORY
The getaddrinfo command first appeared in NetBSD 7.0, followed by FreeBSD 11.1 and FreeBSD 12.0.