Skip site navigation (1)Skip section navigation (2)

FreeBSD Manual Pages

  
 
  

home | help
GETHOSTBYNAME(3)	     Library Functions Manual		GETHOSTBYNAME(3)

NAME
     gethostbyname, gethostbyaddr, gethostent, sethostent, endhostent, herror --
     get network host entry

SYNOPSIS
     #include <netdb.h>
     extern struct h_errno;

     struct hostent *
     gethostbyname(char *name);

     struct hostent *
     gethostbyaddr(char *addr, int len, int type);

     struct hostent *
     gethostent(void);

     sethostent(int stayopen);

     endhostent(void);

     herror(char *string);

DESCRIPTION
     The  gethostbyname() and gethostbyaddr() functions each return a pointer to
     an object with the following structure describing an internet  host  refer-
     enced  by name or by address, respectively.  This structure contains either
     the information obtained from the	name  server,  named(8),  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  for  the  host.
		  Host addresses are returned in network byte order.

     h_addr	  The first address in h_addr_list; this is for backward compat-
		  iblity.

		  When using the nameserver, gethostbyname() will search for the
		  named  host  in  the current domain and its parents unless the
		  name ends in a dot.  If the name contains no dot, and  if  the
		  environment  variable  "HOSTALIASES"	contains  the name of an
		  alias file, the alias file will first be searched for an alias
		  matching the input  name.   See  hostname(7)	for  the  domain
		  search procedure and the alias file format.

		  The  sethostent() function may be used to request the use of a
		  connected TCP socket 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().  Otherwise, queries are
		  performed using UDP datagrams.

		  The endhostent() function closes the TCP connection.

FILES
     /etc/hosts

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.  The routine herror() can be used to print an error message	describ-
     ing  the  failure.  If its argument string is non-NULL, it is printed, fol-
     lowed by a colon and a space.  The error message is printed with a trailing
     newline.

     The variable 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     Some unexpected server failure was encountered.  This is  a
		     non-recoverable error.

     NO_DATA	     The  requested  name  is  valid but does not have an IP ad-
		     dress; this is not a temporary error.  This means that  the
		     name  is  known  to the name server but there is no address
		     associated with this name.  Another type of request to  the
		     name  server  using  this domain name will result in an an-
		     swer; for example, a mail-forwarder may be  registered  for
		     this domain.

SEE ALSO
     resolver(3), hosts(5), hostname(7), named(8)

CAVEAT
     The gethostent() function is defined, and sethostent() and endhostent() are
     redefined,  when  libc(3)	is  built  to use only the routines to lookup in
     /etc/hosts and not the name server.

     The gethostent() function reads the next line of  /etc/hosts,  opening  the
     file if necessary.

     The sethostent() function 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().  The endhostent() function
     is redefined to close the file.

HISTORY
     The  herror()  function  appeared	in  4.3BSD.   The endhostent(), gethost-
     byaddr(), gethostbyname(), gethostent(),  and  sethostent()  functions  ap-
     peared in 4.2BSD.

BUGS
     These  functions  use static data storage; if the data is needed for future
     use, it should be copied before any subsequent calls  overwrite  it.   Only
     the Internet address format is currently understood.

4.2 Berkeley Distribution	  July 31, 1991 		GETHOSTBYNAME(3)

Want to link to this manual page? Use this URL:
<https://man.freebsd.org/cgi/man.cgi?query=gethostbyname&manpath=FreeBSD+1.0-RELEASE>

home | help