| INET(3) | Library Functions Manual | INET(3) | 
inet_addr,
    inet_aton, inet_lnaof,
    inet_makeaddr, inet_netof,
    inet_network, inet_ntoa,
    inet_ntop, inet_pton
    — Internet address manipulation routines
Standard C Library (libc, -lc)
#include
    <arpa/inet.h>
in_addr_t
  
  inet_addr(const char *cp);
int
  
  inet_aton(const char *cp,
    struct in_addr *pin);
in_addr_t
  
  inet_lnaof(struct in_addr
  in);
struct in_addr
  
  inet_makeaddr(in_addr_t net,
    in_addr_t lna);
in_addr_t
  
  inet_netof(struct in_addr
  in);
in_addr_t
  
  inet_network(const char
  *cp);
char *
  
  inet_ntoa(struct in_addr
  in);
const char *
  
  inet_ntop(int af,
    const void * restrict src, char *
    restrict dst, socklen_t size);
int
  
  inet_pton(int af,
    const char * restrict src, void *
    restrict dst);
The routines
    inet_aton(),
    inet_addr()
    and
    inet_network()
    interpret character strings representing numbers expressed in the Internet
    standard ‘.’ notation.
The
    inet_pton()
    function converts a presentation format address (that is, printable form as
    held in a character string) to network format (usually a
    struct in_addr or some other internal binary
    representation, in network byte order). It returns 1 if the address was
    valid for the specified address family, or 0 if the address was not
    parseable in the specified address family, or -1 if some system error
    occurred (in which case errno will have been set).
    This function is presently valid for AF_INET and
    AF_INET6.
The
    inet_aton()
    routine interprets the specified character string as an Internet address,
    placing the address into the structure provided. It returns 1 if the string
    was successfully interpreted, or 0 if the string is invalid. The
    inet_addr()
    and
    inet_network()
    functions return numbers suitable for use as Internet addresses and Internet
    network numbers, respectively.
The function
    inet_ntop()
    converts an address *src from network format (usually
    a struct in_addr or some other binary form, in network
    byte order) to presentation format (suitable for external display purposes).
    The size argument specifies the size, in bytes, of the
    buffer *dst. INET_ADDRSTRLEN
    and INET6_ADDRSTRLEN define the maximum size
    required to convert an address of the respective type. It returns NULL if a
    system error occurs (in which case, errno will have
    been set), or it returns a pointer to the destination string. This function
    is presently valid for AF_INET and
    AF_INET6.
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 addresses are returned in network order (bytes ordered from left to right). All network numbers and local address parts are returned as machine byte order integer values.
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. Note that when an Internet address is viewed as a 32-bit integer
    quantity on the VAX the bytes referred to above appear as
    “d.c.b.a”. That is, VAX bytes are
    ordered from right to left.
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).
The constant INADDR_NONE is returned by
    inet_addr() and
    inet_network() for malformed requests.
The inet_ntop() call fails if:
EAFNOSUPPORT]AF_INET or
      AF_INET6 family address.ENOSPC]#include
    <sys/types.h> #include
    <sys/socket.h> #include
    <netinet/in.h> #include
    <arpa/inet.h>
These include files are necessary for all functions.
byteorder(3), getaddrinfo(3), gethostbyname(3), getnameinfo(3), getnetent(3), inet_net(3), hosts(5), networks(5)
IP Version 6 Addressing Architecture, RFC, 2373, July 1998.
The inet_ntop() and
    inet_pton() functions conform to
    X/Open Networking Services Issue 5.2
    (“XNS5.2”). Note that
    inet_pton() does not accept 1-, 2-, or 3-part dotted
    addresses; all four parts must be specified and are interpreted only as
    decimal values. Any leading 0s will be stripped. This is a narrower input
    set than that accepted by inet_aton().
These functions appeared in 4.2BSD.
The value INADDR_NONE (0xffffffff) is a
    valid broadcast address, but inet_addr() cannot
    return that value without indicating failure. The newer
    inet_aton() function does not share this problem.
    The problem of host byte ordering versus network byte ordering is confusing.
    The string returned by inet_ntoa() resides in a
    static memory area.
The inet_addr() function should return a
    struct in_addr.
| June 14, 2007 | macOS 15.6 |