Originální popis anglicky:
gethostbyaddr, gethostbyname - network host database functions
Návod, kniha: POSIX Programmer's Manual
#include <netdb.h>
struct hostent *gethostbyaddr(const void *addr, socklen_t
len,
int
type);
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 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() .
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.
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 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.
The following sections are informative.
None.
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
gethostbyname() functions.
None.
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 original
Standard can be obtained online at http://www.opengroup.org/unix/online.html
.