Jump to content United States-English
HP.com Home Products and Services Support and Drivers Solutions How to Buy
» Contact HP
More options
HP.com home
HP-UX Reference > I


HP-UX 11i Version 3: February 2007

Technical documentation

» Feedback
Content starts here

 » Table of Contents

 » Index


inet: inet_addr(), inet_lnaof(), inet_makeaddr(), inet_netof(), inet_network(), inet_ntoa(), inet_ntoa_r() — Internet address manipulation routines


#include <sys/socket.h> #include <netinet/in.h> #include <arpa/inet.h> in_addr_t inet_addr(const char *cp); 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);


The routine inet_ntoa_r() is described in the Obsolescent Interfaces section below.


inet_addr() and 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);


Take an Internet address and return an ASCII string representing the address in dot (.) notation.


Take an Internet network number and a local network address and construct an Internet address from it.


Break apart Internet host addresses, returning the network number part.


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).

In a multithreaded application, inet_ntoa() uses thread-specific storage that is re-used in each call. The return value, the character string, should be unique for each thread and should be saved, if desired, before the thread makes the next inet_ntoa() call.

Obsolescent Interfaces

The following reentrant interface has been moved from libc to libd4r.

  • int inet_ntoa_r(struct in_addr in, char *buffer, int buflen);

It is included to support existing applications and may be removed in a future release. New multithreaded applications should use the regular API (those without the _r suffix.)

The reentrant interface functions the same as the regular interface without the _r suffix. However, inet_ntoa_r() expects to be passed the address of a character buffer and will store the result at the supplied location. 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.


The routines return values as described in the DESCRIPTION section. inet_addr() and inet_network() return -1 (INADDR_NONE) for malformed requests.


The return value from the inet_addr() function cannot distinguish between a failure (-1) and a local broadcast address ( This can be handled by using the inet_pton() function instead of the inet_addr() function.


The inet routines were developed by the University of California, Berkeley.

Printable version
Privacy statement Using this site means you accept its terms Feedback to webmaster
© 1983-2007 Hewlett-Packard Development Company, L.P.