NAME
inet_addr, inet_network, inet_ntoa, inet_makeaddr,
inet_lnaof,
inet_netof - Internet address manipulation routines
SYNOPSIS
#include <sys/socket.h>
#include <netinet/in.h>
#include <arpa/inet.h>
unsigned long inet_addr(cp)
const char *cp;
unsigned long inet_network(cp)
const char *cp;
char *inet_ntoa(in)
struct in_addr in;
struct in_addr
inet_makeaddr(net, lna)
int net, lna;
unsigned long inet_lnaof(in)
struct in_addr in;
unsigned long inet_netof(in)
struct in_addr in;
DESCRIPTION
The routines inet_addr and inet_network each interpret
character
strings representing numbers expressed in the Internet
standard "."
notation, returning numbers suitable for use as Internet
addresses
and Internet network numbers, respectively. The routine
inet_ntoa
takes an Internet address and returns an ASCII string
representing
the address in "." notation. The routine
inet_makeaddr takes an
Internet network number and a local network address and
constructs
an Internet address from it. The routines inet_netof and
inet_lnaof break apart Internet host addresses, returning
the
network number and local network address part,
respectively.
All Internet address are
returned in network order (bytes ordered
from left to right). All network numbers and local address
parts
are returned as machine format integer values.
INTERNET ADDRESSES
Values specified using the "." notation take one
of the following
forms:
a.b.c.d
a.b.c
a.b
a
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 address.
When a three part address is
specified, the last part is
interpreted as a 16-bit quantity and placed in the right
most two
bytes of the network address. This makes the three part
address
format convenient for specifying Class B network addresses
as
"128.net.host".
When a two part address is
supplied, the last part is interpreted
as a 24-bit quantity and placed in the right most three
bytes of
the network address. This makes the two part address format
convenient for specifying Class A network addresses as
"net.host".
When only one part is given, the
value is stored directly in the
network address without any byte rearrangement.
All numbers supplied as
"parts" in a "." 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).
SEE ALSO
gethostbyname(3), getnetent(3), hosts(5), networks(5)
DIAGNOSTICS
The constant INADDR_NONE is returned by inet_addr and
inet_network
for malformed requests.
BUGS
The problem of host byte ordering versus network byte
ordering is
confusing. A simple way to specify Class C network addresses
in a
manner similar to that for Class B and Class A is needed.
The
string returned by inet_ntoa resides in a static memory
area.
Inet_addr should return a struct in_addr.