Node:Host Address Functions,
Next:Host Names,
Previous:Host Address Data Type,
Up:Host Addresses
Host Address Functions
These additional functions for manipulating Internet addresses are
declared in the header file arpa/inet.h.  They represent Internet
addresses in network byte order, and network numbers and
local-address-within-network numbers in host byte order.  See Byte Order, for an explanation of network and host byte order.
| int inet_aton (const char *name, struct in_addr *addr) | Function | 
| This function converts the IPv4 Internet host address name
from the standard numbers-and-dots notation into binary data and stores
it in the struct in_addrthat addr points to.inet_atonreturns nonzero if the address is valid, zero if not. | 
| uint32_t inet_addr (const char *name) | Function | 
| This function converts the IPv4 Internet host address name from the
standard numbers-and-dots notation into binary data.  If the input is
not valid, inet_addrreturnsINADDR_NONE.  This is an
obsolete interface toinet_aton, described immediately above. It
is obsolete becauseINADDR_NONEis a valid address
(255.255.255.255), andinet_atonprovides a cleaner way to
indicate error return. | 
| uint32_t inet_network (const char *name) | Function | 
| This function extracts the network number from the address name,
given in the standard numbers-and-dots notation. The returned address is
in host order. If the input is not valid, inet_networkreturns-1.The function works only with traditional IPv4 class A, B and C network
types.  It doesn't work with classless addresses and shouldn't be used
anymore. 
 | 
| char * inet_ntoa (struct in_addr addr) | Function | 
| This function converts the IPv4 Internet host address addr to a
string in the standard numbers-and-dots notation.  The return value is
a pointer into a statically-allocated buffer.  Subsequent calls will
overwrite the same buffer, so you should copy the string if you need
to save it. In multi-threaded programs each thread has an own statically-allocated
buffer.  But still subsequent calls of inet_ntoain the same
thread will overwrite the result of the last call. Instead of inet_ntoathe newer functioninet_ntopwhich is
described below should be used since it handles both IPv4 and IPv6
addresses. | 
| struct in_addr inet_makeaddr (uint32_t net, uint32_t local) | Function | 
| This function makes an IPv4 Internet host address by combining the network
number net with the local-address-within-network number
local. | 
| uint32_t inet_lnaof (struct in_addr addr) | Function | 
| This function returns the local-address-within-network part of the
Internet host address addr. The function works only with traditional IPv4 class A, B and C network
types.  It doesn't work with classless addresses and shouldn't be used
anymore. 
 | 
| uint32_t inet_netof (struct in_addr addr) | Function | 
| This function returns the network number part of the Internet host
address addr. The function works only with traditional IPv4 class A, B and C network
types.  It doesn't work with classless addresses and shouldn't be used
anymore. 
 | 
| int inet_pton (int af, const char *cp, void *buf) | Function | 
| This function converts an Internet address (either IPv4 or IPv6) from
presentation (textual) to network (binary) format.  af should be
either AF_INETorAF_INET6, as appropriate for the type of
address being converted.  cp is a pointer to the input string, and
buf is a pointer to a buffer for the result.  It is the caller's
responsibility to make sure the buffer is large enough. | 
| const char * inet_ntop (int af, const void *cp, char *buf, size_t len) | Function | 
| This function converts an Internet address (either IPv4 or IPv6) from
network (binary) to presentation (textual) form.  af should be
either AF_INETorAF_INET6, as appropriate.  cp is a
pointer to the address to be converted.  buf should be a pointer
to a buffer to hold the result, and len is the length of this
buffer.  The return value from the function will be this buffer address. |