1.\"	$FreeBSD$
2.\"	$NetBSD: getaddrinfo.1,v 1.5 2014/04/22 06:02:06 wiz Exp $
3.\"
4.\" Copyright (c) 2013 The NetBSD Foundation, Inc.
5.\" All rights reserved.
6.\"
7.\" This documentation is derived from text contributed to The NetBSD
8.\" Foundation by Taylor R. Campbell.
9.\"
10.\" Redistribution and use in source and binary forms, with or without
11.\" modification, are permitted provided that the following conditions
12.\" are met:
13.\" 1. Redistributions of source code must retain the above copyright
14.\"    notice, this list of conditions and the following disclaimer.
15.\" 2. Redistributions in binary form must reproduce the above copyright
16.\"    notice, this list of conditions and the following disclaimer in the
17.\"    documentation and/or other materials provided with the distribution.
18.\"
19.\" THIS SOFTWARE IS PROVIDED BY THE NETBSD FOUNDATION, INC. AND CONTRIBUTORS
20.\" ``AS IS'' AND ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED
21.\" TO, THE IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR
22.\" PURPOSE ARE DISCLAIMED.  IN NO EVENT SHALL THE FOUNDATION OR CONTRIBUTORS
23.\" BE LIABLE FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR
24.\" CONSEQUENTIAL DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF
25.\" SUBSTITUTE GOODS OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS
26.\" INTERRUPTION) HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN
27.\" CONTRACT, STRICT LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE)
28.\" ARISING IN ANY WAY OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE
29.\" POSSIBILITY OF SUCH DAMAGE.
30.\"
31.Dd January 2, 2021
32.Dt GETADDRINFO 1
33.Os
34.Sh NAME
35.Nm getaddrinfo
36.Nd resolve names to socket addresses
37.Sh SYNOPSIS
38.Nm
39.Op Fl cNnP
40.Op Fl f Ar family
41.Op Fl p Ar protocol
42.Op Fl s Ar service Ns Op Ns / Ns Ar protocol
43.Op Fl t Ar socktype
44.Op Ar hostname
45.Sh DESCRIPTION
46The
47.Nm
48utility resolves host and service names to socket addresses with
49.Xr getaddrinfo 3
50and prints them to standard output in a user-friendly format.
51.Pp
52The output is a sequence of lines with space-separated fields:
53.Pp
54.Dl socket-type address-family protocol [af-specific data ...]
55.Pp
56For the
57.Dq inet
58and
59.Dq inet6
60address families, the af-specific data are the IP/IPv6 address and port
61number.
62.Pp
63Depending on the settings in
64.Xr nsswitch.conf 5 ,
65.Nm
66might query DNS for answers.
67However, it is not intended to be a general-purpose DNS query utility.
68Use
69.Xr drill 1
70for that.
71.Pp
72These options are available:
73.Bl -tag -width Ds
74.It Fl c
75Look up a canonical name as if with the
76.Dv AI_CANONNAME
77flag to
78.Xr getaddrinfo 3
79and print it on the first line before the socket addresses.
80.It Fl f Ar family
81Specify an address family.
82Address families are named like the
83.Dv AF_...
84constants for address family numbers in the
85.Aq Pa sys/socket.h
86header file but without the
87.Dv AF_
88prefix and lowercase.
89For example,
90.Dq inet
91corresponds with
92.Dv AF_INET .
93.It Fl N
94Treat the service as numeric and do not attempt service name
95resolution, as if with the
96.Dv AI_NUMERICSERV
97flag to
98.Xr getaddrinfo 3 .
99.It Fl n
100Treat the hostname as a numeric address and do not attempt name
101resolution, as if with the
102.Dv AI_NUMERICHOST
103flag to
104.Xr getaddrinfo 3 .
105.It Fl P
106Return socket addresses intended for use with
107.Xr bind 2 ,
108as if with the
109.Dv AI_PASSIVE
110flag to
111.Xr getaddrinfo 3 .
112By default, the socket addresses are intended for use with
113.Xr connect 2 ,
114.Xr sendto 2 ,
115or
116.Xr sendmsg 2 .
117.It Fl p Ar protocol
118Specify a protocol.
119Protocols are numeric or symbolic as listed in
120.Xr protocols 5 .
121.It Fl s Ar service Ns Op Ns / Ns Ar protocol
122Specify a service to look up.
123Services are symbolic or numeric with an optional
124protocol suffix as listed in
125.Xr services 5 .
126If a service is not specified, a hostname is required.
127.It Fl t Ar socktype
128Specify a socket type.
129Socket types are named like the
130.Dv SOCK_...
131constants for socket type numbers in the
132.Aq Pa sys/socket.h
133header file but without the
134.Dv SOCK_
135prefix and lowercase.
136For example,
137.Dq dgram
138corresponds with
139.Dv SOCK_DGRAM .
140.El
141.Sh EXIT STATUS
142.Ex -std getaddrinfo
143.Sh EXAMPLES
144Look up
145.Dq www.dragonflybsd.org :
146.Bd -literal -offset indent
147$ getaddrinfo www.dragonflybsd.org
148dgram inet udp 199.233.90.68 0
149stream inet tcp 199.233.90.68 0
150dgram inet6 udp 2001:470:1:43b:1::68 0
151stream inet6 tcp 2001:470:1:43b:1::68 0
152.Ed
153.Pp
154The port number here is zero because no service was specified.
155.Pp
156Look up
157.Dq www.dragonflybsd.org
158for stream sockets on port 80, and show the canonical name:
159.Bd -literal -offset indent
160$ getaddrinfo -c -t stream -s 80 www.dragonflybsd.org
161canonname leaf.dragonflybsd.org
162stream inet tcp 199.233.90.68 80
163stream inet6 tcp 2001:470:1:43b:1::68 80
164.Ed
165.Pp
166The
167.Dq www.dragonflybsd.org
168is a CNAME of
169.Dq leaf.dragonflybsd.org .
170.Sh SEE ALSO
171.Xr drill 1 ,
172.Xr getent 1 ,
173.Xr getaddrinfo 3 ,
174.Xr getnameinfo 3 ,
175.Xr resolver 3 ,
176.Xr hosts 5 ,
177.Xr nsswitch.conf 5 ,
178.Xr protocols 5 ,
179.Xr resolv.conf 5 ,
180.Xr services 5
181.Sh HISTORY
182The
183.Nm
184command first appeared in
185.Nx 7.0 ,
186and was imported to
187.Dx 5.9 .
188