inet_ntop(3XNET) X/Open Networking Services Library Functions inet_ntop(3XNET)NAME
inet_ntop, inet_pton - convert IPv4 and IPv6 addresses between binary
and text form
SYNOPSIS
cc [ flag ... ] file ... -lxnet [ library ... ]
#include <arpa/inet.h>
const char *inet_ntop(int af, const void *restrict src, char *restrict
dst, socklen_t size);
int inet_pton(int af, const char *restrict src, void *restrict dst);
DESCRIPTION
The inet_ntop() function converts a numeric address into a text string
suitable for presentation. The af argument specifies 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 dst argument points to
a buffer where the function stores the resulting text string; it cannot
be NULL. The size argument specifies the size of this buffer, which
must be large enough to hold the text string (INET_ADDRSTRLEN charac‐
ters for IPv4, INET6_ADDRSTRLEN characters for IPv6).
The inet_pton() function converts an address in its standard text pre‐
sentation form into its numeric binary form. The af argument specifies
the family of the address. The AF_INET and AF_INET6 address families
are 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 must be large enough to hold the numeric address
(32 bits for AF_INET, 128 bits for AF_INET6).
If the af argument of inet_pton() is AF_INET, the src string is in the
standard IPv4 dotted-decimal form:
ddd.ddd.ddd.ddd
where "ddd" is a one to three digit decimal number between 0 and 255
(see inet_addr(3XNET)). 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 is 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. Lead‐
ing zeros in individual fields can be omitted, but there must 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. Unspec‐
ified addresses ("0:0:0:0:0:0:0:0") can 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).
A more extensive description of the standard representations of IPv6
addresses can be found in RFC 2373.
RETURN VALUES
The inet_ntop() function returns a pointer to the buffer containing the
text string if the conversion succeeds. Otherwise it returns NULL and
sets errno to indicate the error.
The inet_pton() function returns 1 if the conversion succeeds, with the
address pointed to by dst in network byte order. It returns 0 if the
input is not a valid IPv4 dotted-decimal string or a valid IPv6 address
string. It returns −1 and sets errno to EAFNOSUPPORT if the af argument
is unknown.
ERRORS
The inet_ntop() and inet_pton() functions will fail if:
EAFNOSUPPORT The af argument is invalid.
ENOSPC The size of the inet_ntop() result buffer is inade‐
quate.
ATTRIBUTES
See attributes(5) for descriptions of the following attributes:
┌─────────────────────────────┬─────────────────────────────┐
│ ATTRIBUTE TYPE │ ATTRIBUTE VALUE │
├─────────────────────────────┼─────────────────────────────┤
│Interface Stability │Standard │
├─────────────────────────────┼─────────────────────────────┤
│MT-Level │MT-Safe │
└─────────────────────────────┴─────────────────────────────┘
SEE ALSOinet_addr(3XNET), attributes(5)SunOS 5.10 1 Nov 2003 inet_ntop(3XNET)