Museum

Home

Lab Overview

Retrotechnology Articles

⇒ Online Manual

Media Vault

Software Library

Restoration Projects

Artifacts Sought

Related Articles

hosts(5)

svc.conf(5)

gethostent(3n)

Name

gethostent, gethostbyaddr, gethostbyname, sethostent, endhostent − get hosts entry

Syntax

#include <netdb.h>

struct hostent *gethostent()

struct hostent *gethostbyname(name)
char *name;

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

sethostent(stayopen)
int stayopen;

endhostent()

Description

The gethostent, gethostbyname, and gethostbyaddr subroutines return a pointer to an object with the following structure containing the broken-out fields reflecting information obtained from the hosts database.

struct   hostent {
         char   *h_name;       /* official name of host */
         char   **h_aliases;   /* alias list */
         int    h_addrtype;    /* 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 A pointer to the network address for the host.  Host addresses are returned in network byte order. 

If the stayopen flag on a sethostent subroutine is NULL, the hosts database is opened.  Otherwise the sethostent has the effect of rewinding the hosts database. The endhostent may be called to close the hosts database when processing is complete.

The gethostent subroutine simply reads the next line while gethostbyname and gethostbyaddr search until a matching name, or addr, len, type is found (or until EOF is encountered).  The gethostent subroutine keeps a pointer in the database, allowing successive calls to be used to search the entire file.

The gethostbyname and gethostbyaddr subroutines query the hosts database.

A call to sethostent must be made before a while loop using gethostent in order to perform initialization and an endhostent must be used after the loop.  Both gethostbyname and gethostbyaddr make calls to sethostent and endhostent.

Restrictions

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. 

If YP is running, gethostent does not return the entries in any particular order. See the Guide to the Yellow Pages Service for setup information. 

The hosts database may also be distributed via the BIND/Hesiod naming service.  See the Guide to the BIND/Hesiod Service for more information. 

Return Value

Null pointer (0) returned on EOF or error. 

Files

/etc/hosts

See Also

hosts(5), svc.conf(5)
Guide to the BIND/Hesiod Service
Guide to the Yellow Pages Service
 
 

Typewritten Software • bear@typewritten.org • Edmonds, WA 98026