1 2 3 4 5 6 7 8 9 10 11 12 13 14 15 16 17 18 19 20 21 22 23 24 25 26 27 28 29 30 31 32 33 34 35 36 37 38 39 40 41 42 43 44 45 46 47 48 49 50 51 52 53 54 55 56 57 58 59 60 61 62 63 64 65 66 67 68 69 70 71 72 73 74 75 76 77 78 79 80 81 82 83 84 85 86 87 88 89 90 91 92 93 94 95 96 97 98 99 100 101 102 103 104 105 106 107 108 109 110 111 112 113 114 115 116 117 118 119 120 121 122 123 124 125 126 127 128 129 130 131 132 133 134 135 136 137 138 139 140 141 142 143 144 145 146 147 148 149 150 151 152 153 154 155 156 157 158 159 160 161 162 163 164 165 166 167 168 169 170 171 172 173 174 175 176 177 178 179 180 181 182 183 184 185 186 187 188 189 190 191 192 193 194 195 196 197 198 199 200 201 202 203 204 205 206 207 208 209 210 211 212 213 214 215 216 217 218 219 220 221 222 223 224 225 226 227 228 229 230 231 232 233 234 235 236 237 238 239 240 241 242 243 244 245 246 247 248 249 250 251 252 253 254
|
.\" Copyright 2000 Sam Varshavchik <mrsam@courier-mta.com>
.\"
.\" 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 <mpi79470@alu.um.es> 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 <sys/types.h>
.B #include <sys/socket.h>
.B #include <netdb.h>
.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)
|