1 .\" Copyright (c) 1983, 1990, 1991, 1993
2 .\" The Regents of the University of California. All rights reserved.
4 .\" Redistribution and use in source and binary forms, with or without
5 .\" modification, are permitted provided that the following conditions
7 .\" 1. Redistributions of source code must retain the above copyright
8 .\" notice, this list of conditions and the following disclaimer.
9 .\" 2. Redistributions in binary form must reproduce the above copyright
10 .\" notice, this list of conditions and the following disclaimer in the
11 .\" documentation and/or other materials provided with the distribution.
12 .\" 3. Neither the name of the University nor the names of its contributors
13 .\" may be used to endorse or promote products derived from this software
14 .\" without specific prior written permission.
16 .\" THIS SOFTWARE IS PROVIDED BY THE REGENTS AND CONTRIBUTORS ``AS IS'' AND
17 .\" ANY EXPRESS OR IMPLIED WARRANTIES, INCLUDING, BUT NOT LIMITED TO, THE
18 .\" IMPLIED WARRANTIES OF MERCHANTABILITY AND FITNESS FOR A PARTICULAR PURPOSE
19 .\" ARE DISCLAIMED. IN NO EVENT SHALL THE REGENTS OR CONTRIBUTORS BE LIABLE
20 .\" FOR ANY DIRECT, INDIRECT, INCIDENTAL, SPECIAL, EXEMPLARY, OR CONSEQUENTIAL
21 .\" DAMAGES (INCLUDING, BUT NOT LIMITED TO, PROCUREMENT OF SUBSTITUTE GOODS
22 .\" OR SERVICES; LOSS OF USE, DATA, OR PROFITS; OR BUSINESS INTERRUPTION)
23 .\" HOWEVER CAUSED AND ON ANY THEORY OF LIABILITY, WHETHER IN CONTRACT, STRICT
24 .\" LIABILITY, OR TORT (INCLUDING NEGLIGENCE OR OTHERWISE) ARISING IN ANY WAY
25 .\" OUT OF THE USE OF THIS SOFTWARE, EVEN IF ADVISED OF THE POSSIBILITY OF
28 .\" From: @(#)inet.3 8.1 (Berkeley) 6/4/93
45 .Nd Internet address manipulation routines
54 .Fn inet_aton "const char *cp" "struct in_addr *pin"
56 .Fn inet_addr "const char *cp"
58 .Fn inet_network "const char *cp"
60 .Fn inet_ntoa "struct in_addr in"
63 .Fa "struct in_addr in"
70 .Fa "const void * restrict src"
71 .Fa "char * restrict dst"
75 .Fn inet_pton "int af" "const char * restrict src" "void * restrict dst"
77 .Fn inet_makeaddr "in_addr_t net" "in_addr_t lna"
79 .Fn inet_lnaof "struct in_addr in"
81 .Fn inet_netof "struct in_addr in"
88 interpret character strings representing
89 numbers expressed in the Internet standard
95 function converts a presentation format address (that is, printable form
96 as held in a character string) to network format (usually a
98 or some other internal binary representation, in network byte order).
99 It returns 1 if the address was valid for the specified address family, or
100 0 if the address was not parseable in the specified address family, or -1
101 if some system error occurred (in which case
104 This function is presently valid for
111 routine interprets the specified character string as an Internet address,
112 placing the address into the structure provided.
113 It returns 1 if the string was successfully interpreted,
114 or 0 if the string is invalid.
119 functions return numbers suitable for use
120 as Internet addresses and Internet network
121 numbers, respectively.
130 or some other binary form, in network byte order) to presentation format
131 (suitable for external display purposes).
134 argument specifies the size, in bytes, of the buffer
139 define the maximum size required to convert an address of the respective
141 It returns NULL if a system error occurs (in which case,
143 will have been set), or it returns a pointer to the destination string.
144 This function is presently valid for
151 takes an Internet address and returns an
153 string representing the address in
158 is the reentrant version of
160 The deprecated routine
162 takes an Internet network number and a local
163 host address on that network, and constructs an Internet address
165 It should only be assumed to work for historical class A/B/C networks.
166 The deprecated routines
170 break apart Internet host addresses, returning
171 the network number and local host address part,
173 assuming the historical class A/B/C network masks.
175 All Internet addresses are returned in network
176 order (bytes ordered from left to right).
177 All network numbers and local address parts are
178 returned as machine byte order integer values.
179 .Sh INTERNET ADDRESSES
180 Values specified using the
183 of the following forms:
184 .Bd -literal -offset indent
191 When four parts are specified, each is interpreted
192 as a byte of data and assigned, from left to right,
193 to the four bytes of an Internet address.
195 that when an Internet address is viewed as a 32-bit
196 integer quantity on the
198 the bytes referred to
204 ordered from right to left.
206 When a three part address is specified, the last
207 part is interpreted as a 16-bit quantity and placed
208 in the least significant two bytes of the network address.
210 When a two part address is supplied, the last part
211 is interpreted as a 24-bit quantity and placed in
212 the least significant three bytes of the network address.
214 When only one part is given, the value is stored
215 directly in the network address without any byte
218 All numbers supplied as
223 may be decimal, octal, or hexadecimal, as specified
224 in the C language (i.e., a leading 0x or 0X implies
225 hexadecimal; otherwise, a leading 0 implies octal;
226 otherwise, the number is interpreted as decimal).
234 for malformed requests.
242 was not large enough to store the presentation form of the address.
243 .It Bq Er EAFNOSUPPORT
254 .Xr gethostbyname 3 ,
264 .%T "IP Version 6 Addressing Architecture"
275 does not accept 1-, 2-, or 3-part dotted addresses; all four parts
276 must be specified and are interpreted only as decimal values.
277 This is a narrower input set than that accepted by
281 functions appeared in
286 (0xffffffff) is a valid broadcast address, but
288 cannot return that value without indicating failure.
291 function does not share this problem.
292 The problem of host byte ordering versus network byte ordering is
294 The string returned by
296 resides in a static memory area.
300 function should return a