.\" Copyright 2000 Sam Varshavchik .\" .\" Permission is granted to make and distribute verbatim copies of this .\" manual provided the copyright notice and this permission notice are .\" preserved on all copies. .\" .\" Permission is granted to copy and distribute modified versions of this .\" manual under the conditions for verbatim copying, provided that the .\" entire resulting derived work is distributed under the terms of a .\" permission notice identical to this one .\" .\" Since the Linux kernel and libraries are constantly changing, this .\" manual page may be incorrect or out-of-date. The author(s) assume no .\" responsibility for errors or omissions, or for damages resulting from .\" the use of the information contained herein. The author(s) may not .\" have taken the same level of care in the production of this manual, .\" which is licensed free of charge, as they might when working .\" professionally. .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. .\" .\" References: RFC 2553 .\" .\" Traducido por Miguel Pérez Ibars el 25-julio-2004 .\" .TH getipnodebyname 3 "3 abril 2002" "Linux Man Page" "Manual del Programador de Linux" .SH NOMBRE getipnodebyname, getipnodebyaddr, freehostent \- obtiene nombres y direcciones de host .SH SINOPSIS .nf .B #include .B #include .B #include .sp .BI "struct hostent *getipnodebyname(const char *" "name" , .BI " int " "af" ", int " "flags" , .BI " int *" "error_num" ); .sp .BI "struct hostent *getipnodebyaddr(const void *" "addr" , .BI " size_t " "len" ", int " "af" , .BI " int *" "error_num" ); .sp .BI "void freehostent(struct hostent *" "ip" ); .fi .SH DESCRIPCIÓN Estas funciones están obsoletas. Use .BR getaddrinfo (3) y .BR getnameinfo (3) en su lugar. .LP Las funciones .BR getipnodebyname (3) y .BR getipnodebyaddr (3) devuelven los nombres y las direcciones de un host. Estas funciones devuelven un puntero a la siguiente estructura: .sp .nf .B struct hostent { .BI " char *" "h_name" ";" .BI " char **" "h_aliases" ";" .BI " int " "h_addrtype" ";" .BI " int " "h_length" ";" .BI " char **" "h_addr_list" ";" .BI "};" .fi .PP Estas funciones reemplazan a las funciones .BR gethostbyname (3) y .BR gethostbyaddr (3) , las cuales sólo podían manejar la familia de direcciones de red IPv4. Las funciones .BR getipnodebyname (3) y .BR getipnodebyaddr (3) pueden manejar múltiples familias de direcciones de red. .PP A diferencia de las funciones .B gethostby , estas funciones devuelven punteros a memoria reservada dinámicamente. La función .BR freehostent (3) se emplea para liberar la memoria dinámica asignada después de que el invocador deje de necesitar la estructura .B hostent. .SS parámetros de getipnodebyname La función .BR getipnodebyname (3) busca direcciones de red para el host especificado en el parámetro .I name. El parámetro .I af especifica uno de los siguientes valores: .TP .B AF_INET El parámetro .I name apunta a una dirección IPv4 en formato decimal con puntos o a un nombre de host IPv4. .TP .B AF_INET6 El parámetro .I name apunta a una dirección IPv6 en formato hexadecimal o a un nombre de host IPv6. .PP El parámetro .I flags especifica opciones adicionales. Se puede especificar más de una opción mediante una operación OR lógica de todas ellas. .I flags debería contener el valor 0 si no se desean opciones adicionales. .TP .B AI_V4MAPPED Esta opción se usa con .B AF_INET6 para solicitar una consulta de direcciones IPv4 en lugar de direcciones IPv6; las direcciones IPv4 serán convertidas a direcciones IPv6. .TP .B AI_ALL Esta opción se usa con .B AI_V4MAPPED para solicitar una consulta de direcciones IPv4 y IPv6. Cualquier dirección IPv4 encontrada se convertirá a una dirección IPv6. .TP .B AI_ADDRCONFIG Esta opción se usa con .B AF_INET6 para solicitar que las consultas de direcciones IPv6 no se realicen a menos que el sistema tenga al menos una dirección IPv6 asignada a una interfaz de red, y que las consultas de direcciones IPv4 no se realicen a menos que el sistema tenga al menos una dirección IPv4 asignada a una interfaz de red. Esta opción puede usarse aislada o con la opción .B AI_V4MAPPED. .TP .B AI_ALL Esta opción es equivalente a .BR "(AI_ADDRCONFIG | AI_V4MAPPED)" . .SS parámetros de getipnodebyaddr La función .BR getipnodebyaddr (3) busca el nombre del host cuya dirección de red está especificada en el parámetro .I addr. El parámetro .I af especifica uno de los siguientes valores: .TP .B AF_INET El parámetro .I addr apunta a una estructura .B in_addr y .I len debe contener el valor .BR "sizeof(struct in_addr)" . .TP .B AF_INET6 El parámetro .I addr apunta a una estructura .B in6_addr y .I len debe contener el valor .BR "sizeof(struct in6_addr)" . .SH "VALOR DEVUELTO" Si ocurre un error se devuelve un puntero null, y .I error_num contendrá un código de error de la siguiente lista: .TP .B HOST_NOT_FOUND No se encontró el nombre de host o la dirección de red. .TP .B NO_ADDRESS El servidor de nombres de dominio reconoció la dirección o nombre de red, pero no devolvió ninguna respuesta. Ésto puede suceder si el host tiene solamente direcciones IPv4 y se realiza una consulta de direcciones IPv6 solamente, o viceversa. .TP .B NO_RECOVERY El servidor de nombres de dominio devolvió una respuesta de fallo permanente. .TP .B TRY_AGAIN El servidor de nombres de dominio devolvió una respuesta de fallo temporal. Puede que tenga mejor suerte la próxima vez. .PP Una consulta exitosa devuelve un puntero a una estructura .B hostent que contiene los siguientes campos: .TP .B h_name Nombre oficial del host. .TP .B h_aliases Es un array de punteros a sinónimos no oficiales para el mismo host. Este array termina en un puntero null. .TP .B h_addrtype Es una copia del parámetro .I af a .BR getipnodebyname (3) o .BR getipnodebyaddr (3). .I h_addrtype será siempre .B AF_INET si el parámetro .I af era .BR AF_INET . será siempre .B AF_INET6 si el parámetro .I af era .BR AF_INET6 . .TP .B h_length Este campo contendrá el valor .B sizeof(struct in_addr) si .I h_addrtype es AF_INET, y el valor .B sizeof(struct in6_addr) si .I h_addrtype es AF_INET6. .TP .B h_addr_list Es un array de uno o más punteros a estructuras de direcciones de red para el host. Este array termina en un puntero null. .SH OBSERVACIONES Estas funciones han estado presentes en glibc 2.1.91-95, pero fueron eliminadas de nuevo. Muchos sistemas derivados de Unix las soportan, pero todos las consideran obsoletas. .SH "CONFORME A" RFC 2553. .SH "VÉASE TAMBIÉN" .BR getaddrinfo (3), .BR getnameinfo (3), .BR inet_ntop (3), .BR inet_pton (3)