1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
19
20
21
22
23
24
25
26
27
28
29
30
31
32
33
34
35
36
37
38
39
40
41
42
43
44
45
46
47
48
49
50
51
52
53
54
55
56
57
58
59
60
61
62
63
64
65
66
67
68
69
70
71
72
73
74
75
76
77
78
79
80
81
82
83
84
85
86
87
88
89
90
91
92
93
94
95
96
97
98
99
100
101
102
103
104
105
106
107
108
109
110
111
112
113
114
115
116
117
118
119
120
121
122
123
|
'\" t
.\" Copyright 2000 Sam Varshavchik <mrsam@courier-mta.com>
.\"
.\" SPDX-License-Identifier: Linux-man-pages-copyleft
.\"
.\" References: RFC 2553
.TH inet_ntop 3 2023-07-20 "Linux man-pages 6.05.01"
.SH NAME
inet_ntop \- convert IPv4 and IPv6 addresses from binary to text form
.SH LIBRARY
Standard C library
.RI ( libc ", " \-lc )
.SH SYNOPSIS
.nf
.B #include <arpa/inet.h>
.PP
.BI "const char *inet_ntop(int " af ", const void *restrict " src ,
.BI " char " dst "[restrict ." size "], socklen_t " size );
.fi
.SH DESCRIPTION
This function converts the network address structure
.I src
in the
.I af
address family into a character string.
The resulting string is copied to the buffer pointed to by
.IR dst ,
which must be a non-null pointer.
The caller specifies the number of bytes available in this buffer in
the argument
.IR size .
.PP
.BR inet_ntop ()
extends the
.BR inet_ntoa (3)
function to support multiple address families,
.BR inet_ntoa (3)
is now considered to be deprecated in favor of
.BR inet_ntop ().
The following address families are currently supported:
.TP
.B AF_INET
.I src
points to a
.I struct in_addr
(in network byte order)
which is converted to an IPv4 network address in
the dotted-decimal format, "\fIddd.ddd.ddd.ddd\fP".
The buffer
.I dst
must be at least
.B INET_ADDRSTRLEN
bytes long.
.TP
.B AF_INET6
.I src
points to a
.I struct in6_addr
(in network byte order)
which is converted to a representation of this address in the
most appropriate IPv6 network address format for this address.
The buffer
.I dst
must be at least
.B INET6_ADDRSTRLEN
bytes long.
.SH RETURN VALUE
On success,
.BR inet_ntop ()
returns a non-null pointer to
.IR dst .
NULL is returned if there was an error, with
.I errno
set to indicate the error.
.SH ERRORS
.TP
.B EAFNOSUPPORT
.I af
was not a valid address family.
.TP
.B ENOSPC
The converted address string would exceed the size given by
.IR size .
.SH ATTRIBUTES
For an explanation of the terms used in this section, see
.BR attributes (7).
.TS
allbox;
lbx lb lb
l l l.
Interface Attribute Value
T{
.na
.nh
.BR inet_ntop ()
T} Thread safety MT-Safe locale
.TE
.sp 1
.SH STANDARDS
POSIX.1-2008.
.SH HISTORY
POSIX.1-2001.
.PP
Note that RFC\ 2553 defines a prototype where the last argument
.I size
is of type
.IR size_t .
Many systems follow RFC\ 2553.
glibc 2.0 and 2.1 have
.IR size_t ,
but 2.2 and later have
.IR socklen_t .
.\" 2.1.3: size_t, 2.1.91: socklen_t
.SH BUGS
.B AF_INET6
converts IPv4-mapped IPv6 addresses into an IPv6 format.
.SH EXAMPLES
See
.BR inet_pton (3).
.SH SEE ALSO
.BR getnameinfo (3),
.BR inet (3),
.BR inet_pton (3)
|