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) ; |
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 non-zero 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_lnoaf
() and inet_netof
() is defined in netinet/in.h
as:
struct in_addr { unsigned long int s_addr
;};
Note that on the i80x86 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
.
gethostbyname(3), getnetent(3), inet_ntop(3), inet_pton(3), hosts(5), networks(5)
|