GETHOSTBYNAME(3N) GETHOSTBYNAME(3N)
NAME
gethostbyname, gethostbyaddr, gethostent, sethostent,
endhostent - get network host entry
SYNOPSIS
#include <netdb.h>
extern int herrno;
struct hostent *gethostbyname(name)
char *name;
struct hostent *gethostbyaddr(addr, len, type)
char *addr; int len, type;
struct hostent *gethostent()
sethostent(stayopen)
int stayopen;
endhostent()
DESCRIPTION
Gethostbyname and gethostbyaddr each return a pointer to an
object with the following structure. This structure
contains either the information obtained from the name
server, named(1M), or broken-out fields from a line in
/etc/hosts. If the local name server is not running these
routines do a lookup in /etc/hosts.
struct hostent {
char *h_name; /* official name of host */
char **h_aliases; /* alias list */
int h_addrtype; /* host address type */
int h_length; /* length of address */
char **h_addr_list; /* list of addresses from name server */
};
#define h_addr h_addr_list[0] /* address, for backward compatibility */
The members of this structure are:
h_name Official name of the host.
h_aliases A zero terminated array of alternate names for
the host.
h_addrtype The type of address being returned; currently
always AF_INET.
h_length The length, in bytes, of the address.
h_addr_list A zero terminated array of network addresses
Page 1 (last mod. 8/20/87)
GETHOSTBYNAME(3N) GETHOSTBYNAME(3N)
for the host. Host addresses are returned in
network byte order.
h_addr The first address in h_addr_list; this is for
backward compatiblity.
Sethostent allows a request for the use of a connected
socket using TCP for queries. If the stayopen flag is non-
zero, this sets the option to send all queries to the name
server using TCP and to retain the connection after each
call to gethostbyname or gethostbyaddr.
Endhostent closes the TCP connection.
DIAGNOSTICS
Error return status from gethostbyname and gethostbyaddr is
indicated by return of a null pointer. The external integer
h_errno may then be checked to see whether this is a
temporary failure or an invalid or unknown host.
h_errno can have the following values:
HOST_NOT_FOUND No such host is known.
TRY_AGAIN This is usually a temporary error and
means that the local server did not
receive a response from an
authoritative server. A retry at some
later time may succeed.
NO_RECOVERY This is a non-recoverable error.
NO_ADDRESS The requested name is valid but does
not have an IP address; this is not a
temporary error. This means another
type of request to the name server will
result in an answer.
FILES
/etc/hosts
SEE ALSO
hosts(5), resolver(3), named(1M)
CAVEAT
Gethostent is defined, and sethostent and endhostent are
redefined, when libc is built to use only the routines to
lookup in /etc/hosts and not the name server.
Gethostent reads the next line of /etc/hosts, opening the
file if necessary.
Page 2 (last mod. 8/20/87)
GETHOSTBYNAME(3N) GETHOSTBYNAME(3N)
Sethostent is redefined to open and rewind the file. If the
stayopen argument is non-zero, the hosts data base will not
be closed after each call to gethostbyname or gethostbyaddr.
Endhostent is redefined to close the file.
BUGS
All information is contained in a static area so it must be
copied if it is to be saved. Only the Internet address
format is currently understood.
NOTE
There are two versions of the primitives documented in this
manual entry: a vanilla version and a Yellow Pages version.
The programmatic interface of both versions is identical.
The vanilla version gets its information from an ASCII file
in /etc. The Yellow Pages version knows about Sun's Yellow
Pages distributed lookup service. If you want the Yellow
Pages version, link the program according to the
instructions for (3Y) primitives as described in intro(3).
Refer to ypserv(1M) and the NFS User's Guide for more
information about the Yellow Pages.
ORIGIN
4th Berkeley Software Distribution
Page 3 (last mod. 8/20/87)