INET_NTOP(3XNET) X/Open Networking Services Library Functions

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, 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 characters for IPv4,
INET6_ADDRSTRLEN characters for IPv6).


The inet_pton() function converts an address in its standard text
presentation 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. Leading 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. Unspecified 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
inadequate.


ATTRIBUTES


See attributes(7) for descriptions of the following attributes:


+--------------------+-----------------+
| ATTRIBUTE TYPE | ATTRIBUTE VALUE |
+--------------------+-----------------+
|Interface Stability | Standard |
+--------------------+-----------------+
|MT-Level | MT-Safe |
+--------------------+-----------------+

SEE ALSO


inet_addr(3XNET), attributes(7)

November 1, 2003 INET_NTOP(3XNET)

tribblix@gmail.com :: GitHub :: Privacy