p The .Fn inet_net_pton function converts a presentation format Internet network number (that is, printable form as held in a character string) to network format (usually a .Vt struct in_addr or some other internal binary representation, in network byte order). It returns the number of bits (either computed based on the class, or specified with /CIDR), or -1 if a failure occurred (in which case .Va errno will have been set).
p The currently supported values for .Fa af are .Dv AF_INET and .Dv AF_INET6 . The .Fa size argument is the size of the result buffer .Fa dst . .Sh NETWORK NUMBERS (IP VERSION 4) Internet network numbers may be specified in one of the following forms: d -literal -offset indent a.b.c.d/bits a.b.c.d a.b.c a.b a .Ed
p When four parts are specified, each is interpreted as a byte of data and assigned, from left to right, to the four bytes of an Internet network number. Note that when an Internet network number is viewed as a 32-bit integer quantity on a system that uses little-endian byte order (such as the .Tn Intel 386 , 486 , and .Tn Pentium processors) the bytes referred to above appear as .Dq Li d.c.b.a . That is, little-endian bytes are ordered from right to left.
p When a three part number is specified, the last part is interpreted as a 16-bit quantity and placed in the rightmost two bytes of the Internet network number. This makes the three part number format convenient for specifying Class B network numbers as .Dq Li 128.net.host .
p When a two part number is supplied, the last part is interpreted as a 24-bit quantity and placed in the rightmost three bytes of the Internet network number. This makes the two part number format convenient for specifying Class A network numbers as .Dq Li net.host .
p When only one part is given, the value is stored directly in the Internet network number without any byte rearrangement.
p
All numbers supplied as
.Dq parts
in a
.Ql .
notation
may be decimal, octal, or hexadecimal, as specified
in the C language (i.e., a leading 0x or 0X implies
hexadecimal; otherwise, a leading 0 implies octal;
otherwise, the number is interpreted as decimal).
.Sh NETWORK NUMBERS (IP VERSION 6)
XXX - document this!
.Sh ERRORS
The
.Fn inet_net_ntop
and
.Fn inet_net_pton
functions may fail with
l -tag -width Er t Bq Er EAFNOSUPPORT The value of
.Fa af
was not
.Dv AF_INET
or
.Dv AF_INET6 .
t Bq Er EMSGSIZE The conversion of
.Fa src
overflows
.Fa size
of
.Fa dst .
.El
p The .Fn inet_net_ntop function may fail with l -tag -width Er t Bq Er EINVAL The .Fa bits argument contains an invalid number of bits for the requested address family. .El
p The .Fn inet_net_pton function may fail with l -tag -width Er t Bq Er ENOENT The .Fa src was not a valid Internet network number. .El .Sh SEE ALSO .Xr byteorder 3 , .Xr inet 3 , .Xr networks 5 .Sh HISTORY The .Fn inet_net_ntop and .Fn inet_net_pton functions appeared in BIND 4.9.4 and thence .Nx 1.3 . Support for .Dv AF_INET6 appeared in .Nx 1.6 .