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 attepmt 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
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
History
The getaddrinfo command first appeared in NetBSD 7.0.
See Also