gethostbyname -- get network host entry


#include <netdb.h>

struct hostent *gethostbyname(const char name);


gethostbyname returns a hostent structure for the given host name. Here, name is either a host name, or an IPv4 address in standard dot notation, or an IPv6 address in colon (and possibly dot) notation. (See RFC 1884 for the description of IPv6 addresses.) If name is an IPv4 or IPv6 address, no lookup is performed and gethostbyname simply copies name into the h_name field and its struct in_addr equivalent into the h_addr_list[0] field of the returned hostent structure. If name doesn't end in a dot and the environment variable HOSTALIASES is set, the alias file pointed to by HOSTALIASES will first be searched for name (see hostname(7) for the file format). The current domain and its parents are searched unless name ends in a dot.

The domain name queries carried out by gethostbyname use a combination of any or all of the name server named(8), a broken out line from /etc/hosts, and the Network Information Service (NIS or YP), depending upon the contents of the order line in /etc/host.conf. (See resolv+(8)). The default action is to query named(8), followed by /etc/hosts.

The hostent structure is defined in netdb.h as follows:
  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 */

  #define  h_addr  h_addr_list[0]   /* for backward compatibility */

Return Value

gethostbyname returns the hostent structure or a NULL pointer if an error occurs. On error, the h_errno variable holds an error number.



Insufficient memory to complete the operation.