File: getipnodebyname.3

package info (click to toggle)
manpages-es 1.55-9
  • links: PTS
  • area: main
  • in suites: squeeze
  • size: 7,468 kB
  • ctags: 6
  • sloc: sh: 1,629; makefile: 64
file content (254 lines) | stat: -rw-r--r-- 6,959 bytes parent folder | download | duplicates (4)
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)