COHERENT manpages

This page displays the COHERENT manpage for inet_addr() [Transform an IP address from text to binary].

List of available manpages
Index


inet_addr() -- Sockets Function (libsocket)

Transform an IP address from text to binary
#include <netinet/in.h>
#include <arpa/inet.h>
#include <sys/types.h>
ulong inet_addr(ip_address)
char *ip_address;

The function inet_addr()  translates an Internet-protocol (IP) address from
text into  binary format.   ip_address gives  the address where  the string
that holds the IP address resides in memory.

If all goes well, inet_addr() returns the binary address that it built from
ip_address. If, however, ip_address points to a malformed Internet address,
inet_addr() returns -1.

An IP address consists of four  bytes.  The four bytes normally are written
as   four   numbers   that  are   separated   by   periods;  for   example,
``199.3.32.100''.   This  way of  rendering  an IP  address  is called  dot
notation. Each  byte can as a  written as a decimal,  octal, or hexadecimal
number.  By default,  a numbers is written in decimal;  a leading ``0x'' or
``0X'' indicates hexadecimal, and a leading `0' indicates octal.

When inet_addr() translates an IP  address from text into binary, it simply
transforms the  four numbers  as written into  four bytes, which  it writes
into the  four bytes  of an  unsigned long (32-bit)  integer, from  left to
right, without  regard to the  machine's byte ordering.   This means, among
other  things,  that you  cannot  perform arithmetic  on  the address  that
inet_addr() returns -- not even to increment or decrement it.

The IP  address to which  ip_address points can  have any of  the following
four forms:

    first.second.third.fourth
    first.second.third
    first.second
    first

When the string to which ip_address  points specifies all four parts of the
Internet address, inet_addr() writes all four, from left to right, into the
long integer that it returns.

When ip_address points  to a three-part address, inet_addr() interprets the
last  (third)  part as  a  16-bit  value, which  it  writes  into into  the
rightmost two  bytes of the  network address.  When ip_address  points to a
two-part address, inet_addr() interprets the second part as a 24-bit, which
it writes into  the rightmost three bytes of the network address.

When ip_address points to a one-part address, inet_addr() simply transforms
it into an integer without shuffling any bytes.

See Also

inet_network(),
libsocket

Notes

Because COHERENT  does not yet  support networking, inet_addr()  is a dummy
function that always returns zero.