inet(3N)
NAME
inet_addr(), inet_network(), inet_ntoa(), inet_ntoa_r(), 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(const char ∗cp);
unsigned long inet_network(const char ∗cp);
char ∗inet_ntoa(struct in_addr in);
int inet_ntoa_r(struct in_addr in, char *buffer, int buflen);
struct in_addr inet_makeaddr(int net, int lna);
unsigned long inet_lnaof(struct in_addr in);
unsigned long inet_netof(struct in_addr in);
DESCRIPTION
inet_addr()
inet_network() Interpret character strings representing numbers expressed in the Internet standard “dot” notation.
inet_addr() returns numbers suitable for use as Internet addresses.
inet_network() returns numbers suitable for use as Internet network numbers.
Return values can be assigned to a struct in_addr (defined in /usr/include/netinet/in.h) by using a technique similar to the following:
struct in_addr addr;
char *cp;
addr.s_addr = inet_addr(cp);
inet_ntoa() Take an Internet address and return an ASCII string representing the address in “.” (dot) notation.
inet_ntoa_r() Identical to inet_ntoa(), except that the result string is passed back in the supplied buffer. If the buffer is of insufficient length, -1 is returned. If the operation is successful, the length of the result string (not including the terminating null character) is returned.
inet_makeaddr() Take an Internet network number and a local network address and construct an Internet address from it.
inet_netof() Break apart Internet host addresses, returning the network number part.
inet_lnaof() Break apart Internet host addresses, returning the local network address part.
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-format integer values. Bytes in HP-UX systems are ordered from left to right.
Internet Addresses:
Values specified using dot 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 in 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 in 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 dot notation can be decimal, octal, or hexadecimal, as specified in the C language (i.e., a leading 0x or 0X implies hexadecimal; a leading 0 implies octal; otherwise, the number is interpreted as decimal).
RETURN VALUE
inet_addr() and inet_network() return −1 for malformed requests.
WARNINGS
The string returned by inet_ntoa() resides in a static memory area and must be saved if needed for later use.
inet_ntoa() is unsafe for multi-thread applications. inet_ntoa_r() is MT-Safe and should be used instead.
AUTHOR
These inet routines were developed by the University of California, Berkeley.
SEE ALSO
gethostent(3N), getnetent(3N), hosts(4), networks(4).
Hewlett-Packard Company — HP-UX Release 10.20: July 1996