GETHOSTBYNOMBRE(3)

NOMBRE
gethostbyname, gethostbyaddr, sethostent, endhostent, herror - obtienen una entrada de host de la red

SINOPSIS
#include <netdb.h>
extern int h_errno;

struct hostent *gethostbyname(const char *name);

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

void sethostent(int stayopen);

void endhostent(void);

void herror(const char *s);

DESCRIPCION
La función gethostbyname() retorna una estructura del tipo hostent para el host dado name. El dominio corriente y sus ascendientes son buscados amenos que name termine con un punto. Si name no termina con un punto y la variable de ambiente HOSTALIASES esta asignada, el archivo de alias apuntado por HOSTALIASES puede ser buscado primero por name.

La función gethostbyaddr() retorna una estructura del tipo hostent para la dirección de host dada addr de longitud len y de tipo type. El único tipo de dirección válido actualmente es AF_INET.

La función sethostent() especifica, si stayopen es true(1), que un conector (socket) TCP debe ser usado pora las preguntas al servidor de nombres y que conector (socket) debe permanecer abierto durante susesivas preguntas. De otro modo, las preguntas al servidor de nombres pueden usar datagramas UDP.

La función endhostent() termina el uso de una conexión TCP para las preguntas al servidor de nombres.

La función herror() imprime un mensaje de error asociado con el valor corriente de h_errno sobre stderr.

Las preguntas al servidos de nombre llevadas a cabo por gethostbyname() y gethostbyaddr() usan una combinación de uno o todos los servidores de nombre named(8), una declaración en /etc/hosts, y/o the Network Information Service (NIS or YP), dependiendo de los contenidos de la línea order en /etc/host.conf. (Vea resolv+(8)). La acción por defecto es preguntar a named(8), seguido por /etc/hosts.

La estructura hostent es definida en <netdb.h> como sigue:

    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 */

Los miembros de la estructura hostent son:

h_name
    El nombre oficial de un host.

h_aliases
    Una cadena terminada en nulo de los nombre alternativos para el host.

h_addrtype
    El tipo de dirección; siempre AF_INET hasta ahora.

h_length
    La longitud de la dirección en bytes.

h_addr_list
    Una cadena terminada en nulo de la dirección de red del host en network byte order.

h_addr
    La primera dirección en h_addr_list para compatibilidad hacia atrás.

VALOR RETORNADO
Las funciones gethostbyname() y gethostbyaddr() retornan la estructura hostent o un puntero NULL si un error a ocurrido. En caso de error, la variable h_errno mantiene en número de error.

ERRORES
La variable h_errno puede tener los siguientes valores:

HOST_NOT_FOUND
    El host especificado es desconocido.

NO_ADDRESS
    El nombre requerido es válido pero no tiene una dirrección IP.

NO_RECOVERY
    Un error no recuperable del servidor de nombres a ocurrido.

TRY_AGAIN
    Un error temporario ocurrido sobre un servidor de nombres autorizado. Intente luego más tarde.

FILES
/etc/host.conf            archivo de configuración del resolvedor
/etc/hosts                archivo de base de datos de hosts

CONFORME A
BSD 4.3

VER TAMBIEN
resolver(3), hosts(5), hostname(7), resolv+ (8), named(8)