inet_aton, inet_addr, inet_network, inet_ntoa, inet_makeaddr, inet_lnaof, inet_netof — Internet address manipulation routines
#include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h>
int
inet_aton( |
const char * | cp, |
struct in_addr * | inp) ; |
in_addr_t inet_addr( |
const char * | cp) ; |
in_addr_t inet_network( |
const char * | cp) ; |
char
*inet_ntoa( |
struct in_addr | in) ; |
struct in_addr inet_makeaddr( |
int | net, |
int | host) ; |
in_addr_t inet_lnaof( |
struct in_addr | in) ; |
in_addr_t inet_netof( |
struct in_addr | in) ; |
Note | |||
---|---|---|---|
|
inet_aton
() converts the
Internet host address cp
from the standard
numbers-and-dots notation into binary data and stores it in
the structure that inp
points to. inet_aton
() returns nonzero if the address
is valid, zero if not.
The inet_addr
() function
converts the Internet host address cp
from numbers-and-dots
notation into binary data in network byte order. If the input
is invalid, INADDR_NONE
(usually −1) is returned. This is an obsolete interface to inet_aton
(), described immediately above;
it is obsolete because −1 is a valid address
(255.255.255.255), and inet_aton
() provides a cleaner way to
indicate error return.
The inet_network
() function
extracts a number in host byte order suitable for use as an
Internet address from cp
, which is a string in
numbers-and-dots notation. If the input is invalid, −1
is returned.
The inet_ntoa
() function
converts the Internet host address in
given in network byte order
to a string in standard numbers-and-dots notation. The string
is returned in a statically allocated buffer, which
subsequent calls will overwrite.
The inet_makeaddr
() function
makes an Internet host address in network byte order by
combining the network number net
with the local address
host
in network
net
, both in local
host byte order.
The inet_lnaof
() function
returns the local host address part of the Internet address
in
. The local host
address is returned in local host byte order.
The inet_netof
() function
returns the network number part of the Internet Address
in
. The network
number is returned in local host byte order.
The structure in_addr as
used in inet_ntoa
(),
inet_makeaddr
(), inet_lnaof
() and inet_netof
() is defined in <
netinet/in.h
>
as:
typedef uint32_t in_addr_t; struct in_addr { in_addr_t s_addr; };
Note that on the i386 the host byte order is Least Significant Byte first (little endian), whereas the network byte order, as used on the Internet, is Most Significant Byte first (big endian).
When you using numbers-and-dots notation for addresses, be
aware that each number will be interpreted as octal if
preceded by a 0 and as hexadecimal if preceded by 0x. For
example, inet_aton("226.000.000.037",
&t) will interpret the address as 226.0.0.31
and not 226.0.0.37
.
This page is part of release 2.79 of the Linux man-pages
project. A
description of the project, and information about reporting
bugs, can be found at
http://www.kernel.org/doc/man-pages/.
Copyright 1993 David Metcalfe (davidprism.demon.co.uk) Permission is granted to make and distribute verbatim copies of this manual provided the copyright notice and this permission notice are preserved on all copies. Permission is granted to copy and distribute modified versions of this manual under the conditions for verbatim copying, provided that the entire resulting derived work is distributed under the terms of a permission notice identical to this one. Since the Linux kernel and libraries are constantly changing, this manual page may be incorrect or out-of-date. The author(s) assume no responsibility for errors or omissions, or for damages resulting from the use of the information contained herein. The author(s) may not have taken the same level of care in the production of this manual, which is licensed free of charge, as they might when working professionally. Formatted or processed versions of this manual, if unaccompanied by the source, must acknowledge the copyright and authors of this work. References consulted: Linux libc source code Lewine's _POSIX Programmer's Guide_ (O'Reilly & Associates, 1991) 386BSD man pages libc.info (from glibc distribution) Modified Sat Jul 24 19:12:00 1993 by Rik Faith <faithcs.unc.edu> Modified Sun Sep 3 20:29:36 1995 by Jim Van Zandt <jrvvanzandt.mv.com> Changed network into host byte order (for inet_network), Andreas Jaeger <ajarthur.rhein-neckar.de>, 980130. |