GETHOSTBYADDR(P) POSIX Programmer's Manual GETHOSTBYADDR(P)
gethostbyaddr, gethostbyname - network host database functions
struct hostent *gethostbyaddr(const void *addr, socklen_t len,
struct hostent *gethostbyname(const char *name);
These functions shall retrieve information about hosts. This information is considered to
be stored in a database that can be accessed sequentially or randomly. Implementation of
this database is unspecified.
Note: In many cases it is implemented by the Domain Name System, as documented in
RFC 1034, RFC 1035, and RFC 1886.
Entries shall be returned in hostent structures.
The gethostbyaddr() function shall return an entry containing addresses of address family
type for the host with address addr. The len argument contains the length of the address
pointed to by addr. The gethostbyaddr() function need not be reentrant. A function that is
not required to be reentrant is not required to be thread-safe.
The gethostbyname() function shall return an entry containing addresses of address family
AF_INET for the host with name name. The gethostbyname() function need not be reentrant.
A function that is not required to be reentrant is not required to be thread-safe.
The addr argument of gethostbyaddr() shall be an in_addr structure when type is AF_INET.
It contains a binary format (that is, not null-terminated) address in network byte order.
The gethostbyaddr() function is not guaranteed to return addresses of address families
other than AF_INET, even when such addresses exist in the database.
If gethostbyaddr() returns successfully, then the h_addrtype field in the result shall be
the same as the type argument that was passed to the function, and the h_addr_list field
shall list a single address that is a copy of the addr argument that was passed to the
The name argument of gethostbyname() shall be a node name; the behavior of gethostbyname()
when passed a numeric address string is unspecified. For IPv4, a numeric address string
shall be in the dotted-decimal notation described in inet_addr() .
If name is not a numeric address string and is an alias for a valid host name, then geth-
ostbyname() shall return information about the host name to which the alias refers, and
name shall be included in the list of aliases returned.
Upon successful completion, these functions shall return a pointer to a hostent structure
if the requested entry was found, and a null pointer if the end of the database was
reached or the requested entry was not found.
Upon unsuccessful completion, gethostbyaddr() and gethostbyname() shall set h_errno to
indicate the error.
These functions shall fail in the following cases. The gethostbyaddr() and gethostbyname()
functions shall set h_errno to the value shown in the list below. Any changes to errno are
No such host is known.
The server recognized the request and the name, but no address is available.
Another type of request to the name server for the domain might return an answer.
An unexpected server failure occurred which cannot be recovered.
A temporary and possibly transient error occurred, such as a failure of a server to
The following sections are informative.
The gethostbyaddr() and gethostbyname() functions may return pointers to static data,
which may be overwritten by subsequent calls to any of these functions.
The getaddrinfo() and getnameinfo() functions are preferred over the gethostbyaddr() and
The gethostbyaddr() and gethostbyname() functions may be withdrawn in a future version.
endhostent() , endservent() , gai_strerror() , getaddrinfo() , h_errno() , inet_addr() ,
the Base Definitions volume of IEEE Std 1003.1-2001, <netdb.h>
Portions of this text are reprinted and reproduced in electronic form from IEEE Std
1003.1, 2003 Edition, Standard for Information Technology -- Portable Operating System
Interface (POSIX), The Open Group Base Specifications Issue 6, Copyright (C) 2001-2003 by
the Institute of Electrical and Electronics Engineers, Inc and The Open Group. In the
event of any discrepancy between this version and the original IEEE and The Open Group
Standard, the original IEEE and The Open Group Standard is the referee document. The orig-
inal Standard can be obtained online at http://www.opengroup.org/unix/online.html .
IEEE/The Open Group 2003 GETHOSTBYADDR(P)