inet_ntop - convert IPv4 and IPv6 addresses from binary to text form
const char *inet_ntop(int af, const void *src,
char *dst, socklen_t size);
This function converts the network address structure src
in the af
address family into a character string. The resulting string is copied to the
buffer pointed to by dst
, which must be a non-null pointer. The caller
specifies the number of bytes available in this buffer in the argument
() extends the inet_ntoa
(3) function to support multiple
address families, inet_ntoa
(3) is now considered to be deprecated in
favor of inet_ntop
(). The following address families are currently
- src points to a struct in_addr (in network byte order) which
is converted to an IPv4 network address in the dotted-decimal format,
" ddd.ddd.ddd.ddd". The buffer dst must be at
least INET_ADDRSTRLEN bytes long.
- src points to a 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
dst must be at least INET6_ADDRSTRLEN bytes long.
On success, inet_ntop
() returns a non-null pointer to dst
. NULL is
returned if there was an error, with errno
set to indicate the error.
- af was not a valid address family.
- The converted address string would exceed the size given by
For an explanation of the terms used in this section, see attributes
POSIX.1-2001, POSIX.1-2008. Note that RFC 2553 defines a prototype where
the last argument size
is of type size_t
. Many systems follow
RFC 2553. Glibc 2.0 and 2.1 have size_t
, but 2.2 and later have
converts IPv4-mapped IPv6 addresses into an IPv6 format.