inet_ntop - Man Page

convert IPv4 and IPv6 addresses from binary to text form

Library

Standard C library (libc, -lc)

Synopsis

#include <arpa/inet.h>

const char *inet_ntop(int af, const void *restrict src,
                      char dst[restrict .size], socklen_t size);

Description

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 size.

inet_ntop() 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 supported:

AF_INET

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.

AF_INET6

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.

Return Value

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.

Errors

EAFNOSUPPORT

af was not a valid address family.

ENOSPC

The converted address string would exceed the size given by size.

Attributes

For an explanation of the terms used in this section, see attributes(7).

InterfaceAttributeValue
inet_ntop()Thread safetyMT-Safe locale

Standards

POSIX.1-2008.

History

POSIX.1-2001.

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 socklen_t.

Bugs

AF_INET6 converts IPv4-mapped IPv6 addresses into an IPv6 format.

Examples

See inet_pton(3).

See Also

getnameinfo(3), inet(3), inet_pton(3)

Referenced By

fmt_ip4(3), fmt_ip6(3), gethostbyname(3), getipnodebyname(3), getnameinfo(3), inet(3), inet_pton(3), libuv(1).

2023-10-31 Linux man-pages 6.7