This manual page is part of the POSIX Programmer's Manual. The Linux
implementation of this interface may differ (consult the
corresponding Linux manual page for details of Linux behavior), or
the interface may not be implemented on Linux.
The inet_ntop() function shall convert a numeric address into a text
string suitable for presentation. The af argument shall specify the
family of the address. This can be AF_INET or AF_INET6. The src
argument points to a buffer holding an IPv4 address if the af
argument is AF_INET, or an IPv6 address if the af argument is
AF_INET6; the address must be in network byte order. The dst argument
points to a buffer where the function stores the resulting text
string; it shall not be NULL. The size argument specifies the size of
this buffer, which shall be large enough to hold the text string
(INET_ADDRSTRLEN characters for IPv4, INET6_ADDRSTRLEN characters for
The inet_pton() function shall convert an address in its standard
text presentation form into its numeric binary form. The af argument
shall specify the family of the address. The AF_INET and AF_INET6
address families shall be supported. The src argument points to the
string being passed in. The dst argument points to a buffer into
which the function stores the numeric address; this shall be large
enough to hold the numeric address (32 bits for AF_INET, 128 bits for
If the af argument of inet_pton() is AF_INET, the src string shall be
in the standard IPv4 dotted-decimal form:
where "ddd" is a one to three digit decimal number between 0 and 255
(see inet_addr(3p)). The inet_pton() function does not accept other
formats (such as the octal numbers, hexadecimal numbers, and fewer
than four numbers that inet_addr() accepts).
If the af argument of inet_pton() is AF_INET6, the src string shall
be in one of the following standard IPv6 text forms:
1. The preferred form is "x:x:x:x:x:x:x:x", where the 'x's are the
hexadecimal values of the eight 16-bit pieces of the address.
Leading zeros in individual fields can be omitted, but there
shall be at least one numeral in every field.
2. A string of contiguous zero fields in the preferred form can be
shown as "::". The "::" can only appear once in an address.
Unspecified addresses ("0:0:0:0:0:0:0:0") may be represented
simply as "::".
3. A third form that is sometimes more convenient when dealing with
a mixed environment of IPv4 and IPv6 nodes is
"x:x:x:x:x:x:d.d.d.d", where the 'x's are the hexadecimal values
of the six high-order 16-bit pieces of the address, and the 'd's
are the decimal values of the four low-order 8-bit pieces of the
address (standard IPv4 representation).
Note: A more extensive description of the standard
representations of IPv6 addresses can be found in RFC 2373.
The inet_ntop() function shall return a pointer to the buffer
containing the text string if the conversion succeeds, and NULL
otherwise, and set errno to indicate the error.
The inet_pton() function shall return 1 if the conversion succeeds,
with the address pointed to by dst in network byte order. It shall
return 0 if the input is not a valid IPv4 dotted-decimal string or a
valid IPv6 address string, or −1 with errno set to [EAFNOSUPPORT] if
the af argument is unknown.
The inet_ntop() and inet_pton() functions shall fail if:
The af argument is invalid.
ENOSPC The size of the inet_ntop() result buffer is inadequate.
The following sections are informative.
Portions of this text are reprinted and reproduced in electronic form
from IEEE Std 1003.1, 2013 Edition, Standard for Information
Technology -- Portable Operating System Interface (POSIX), The Open
Group Base Specifications Issue 7, Copyright (C) 2013 by the
Institute of Electrical and Electronics Engineers, Inc and The Open
Group. (This is POSIX.1-2008 with the 2013 Technical Corrigendum 1
applied.) In the event of any discrepancy between this version and
the original IEEE and The Open Group Standard, the original IEEE and
The Open Group Standard is the referee document. The original
Standard can be obtained online at http://www.unix.org/online.html .
Any typographical or formatting errors that appear in this page are
most likely to have been introduced during the conversion of the
source files to man page format. To report such errors, see
IEEE/The Open Group 2013 INET_NTOP(3P)