NAME
gethostbyaddr
gethostbyname — network host
database functions
SYNOPSIS
#include
<netdb.h>
[OB] struct hostent *gethostbyaddr(const void *addr, socklen_t len,
int type);
struct hostent *gethostbyname(const char *name);
DESCRIPTION
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 function.
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(3) .
If name is not a numeric address string and is an alias for a valid host name, then gethostbyname () shall return information about the host name to which the alias refers, and name shall be included in the list of aliases returned.
RETURN VALUE
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.
ERRORS
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 unspecified.
- [HOST_NOT_FOUND]
-
No such host is known. - [NO_DATA]
- 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.
- [NO_RECOVERY]
-
An unexpected server failure occurred which cannot be recovered. - [TRY_AGAIN]
- A temporary and possibly transient error occurred, such as a failure of a server to respond.
EXAMPLES
None.
APPLICATION USAGE
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(3) and
getnameinfo(3) functions are preferred over the
gethostbyaddr () and gethostbyname
() functions.
RATIONALE
None.
FUTURE DIRECTIONS
The gethostbyaddr () and
gethostbyname () functions may be withdrawn in a future
version.
SEE ALSO
endhostent(3) , endservent(3) , gai_strerror(3) , getaddrinfo(3) , h_errno(3) , inet_addr(3) , the Base Definitions volume of IEEE Std 1003.1-2001 (“POSIX.1”), <netdb.h>
CHANGE HISTORY
First released in Issue 6. Derived from the XNS, Issue 5.2 specification.
End of informative text. footer end