GETADDRINFO(1) | General Commands Manual | 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 as if with the getaddrinfo(3) routine and formats them to standard output.

The output is a sequence of lines of 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.

Although the `getaddrinfo` utility may query the DNS to give answers, depending on the system's nsswitch.conf(5) configuration, it is not intended to be a general-purpose utility to query the DNS; use the dig(1) utility for that.

The following 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 may be numeric, or symbolic as listed in protocols(5).
`-s` service[/protocol]
  Specify a service to look up. Services may be symbolic or numeric with an optional protocol suffix as listed in services(5). If no service is specified, a hostname must be specified.
`-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

The `getaddrinfo` utility exits 0 on success, and >0 if an error occurs.

# 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

dig(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.

April 22, 2014 | NetBSD 10.0