version 4 showing authors affecting page license.
.
Rev |
Author |
# |
Line |
1 |
perry |
1 |
getipnodebyname |
|
|
2 |
!!!getipnodebyname |
|
|
3 |
NAME |
|
|
4 |
SYNOPSIS |
|
|
5 |
DESCRIPTION |
|
|
6 |
RETURN VALUE |
|
|
7 |
SEE ALSO |
|
|
8 |
---- |
|
|
9 |
!!NAME |
|
|
10 |
|
|
|
11 |
|
|
|
12 |
getipnodebyname, getipnodebyaddr, freehostent - get network host names and addresses |
|
|
13 |
!!SYNOPSIS |
|
|
14 |
|
|
|
15 |
|
|
|
16 |
__#include |
|
|
17 |
__''name''__, |
|
|
18 |
int__ ''af''__, int__ ''flags''__, |
|
|
19 |
int *__''error_num''__); |
|
|
20 |
struct hostent *getipnodebyaddr(const void *__''addr''__, |
|
|
21 |
size_t__ ''len''__, int__ ''af''__, |
|
|
22 |
int *__''error_num''__); |
|
|
23 |
void freehostent(struct hostent *__''ip''__); |
|
|
24 |
__ |
|
|
25 |
!!DESCRIPTION |
|
|
26 |
|
|
|
27 |
|
|
|
28 |
The getipnodebyname(3) and getipnodebyaddr(3) |
|
|
29 |
functions return the names and addresses of a network host. |
|
|
30 |
These functions return a pointer to the following |
|
|
31 |
structure: |
|
|
32 |
|
|
|
33 |
|
|
|
34 |
__struct hostent { |
|
|
35 |
char *__''h_name''__; |
|
|
36 |
char **__''h_aliases''__; |
|
|
37 |
int__ '' h_addrtype''__; |
|
|
38 |
int__ '' h_length''__; |
|
|
39 |
char **__''h_addr_list''__; |
|
|
40 |
}; |
|
|
41 |
__These functions replace the gethostbyname(3) and gethostbyaddr(3) functions, which could only access the IPv4 network address family. The getipnodebyname(3) and getipnodebyaddr(3) functions can access multiple network address families. |
|
|
42 |
|
|
|
43 |
|
|
|
44 |
Unlike the __gethostby__ functions, these functions |
|
|
45 |
return pointers to dynamically allocated memory. The |
|
|
46 |
freehostent(3) function is used to release the |
|
|
47 |
dynamically allocated memory after the caller no longer |
|
|
48 |
needs the __hostent__ structure. |
|
|
49 |
|
|
|
50 |
|
|
|
51 |
__getipnodebyname parameters__ |
|
|
52 |
|
|
|
53 |
|
|
|
54 |
The getipnodebyname(3) function looks up network |
|
|
55 |
addresses for the host specified by the ''name'' |
|
|
56 |
parameter. The ''af'' parameter specifies one of the |
|
|
57 |
following values: |
|
|
58 |
|
|
|
59 |
|
|
|
60 |
__AF_INET__ |
|
|
61 |
|
|
|
62 |
|
|
|
63 |
The ''name'' parameter points to a dotted-quad IPv4 |
|
|
64 |
address or a name of an IPv4 network host. |
|
|
65 |
|
|
|
66 |
|
|
|
67 |
__AF_INET6__ |
|
|
68 |
|
|
|
69 |
|
|
|
70 |
The ''name'' parameter points to a hexadecimal IPv6 |
|
|
71 |
address or a name of an IPv6 network host. |
|
|
72 |
|
|
|
73 |
|
|
|
74 |
The ''flags'' parameter specifies additional options. |
|
|
75 |
More than one option can be specified by logically OR-ing |
|
|
76 |
them together. ''flags'' should be set to 0 if no options |
|
|
77 |
are desired. |
|
|
78 |
|
|
|
79 |
|
|
|
80 |
__AI_V4MAPPED__ |
|
|
81 |
|
|
|
82 |
|
|
|
83 |
This flag is used with __AF_INET6__ to request a query |
|
|
84 |
for IPv4 addresses instead of IPv6 addresses; the IPv4 |
|
|
85 |
addresses will be mapped to IPv6 addresses. |
|
|
86 |
|
|
|
87 |
|
|
|
88 |
__AI_ALL__ |
|
|
89 |
|
|
|
90 |
|
|
|
91 |
This flag is used with __AI_V4MAPPED__ to request a query |
|
|
92 |
for both IPv4 and IPv6 addresses. Any IPv4 address found |
|
|
93 |
will be mapped to an IPv6 address. |
|
|
94 |
|
|
|
95 |
|
|
|
96 |
__AI_ADDRCONFIG__ |
|
|
97 |
|
|
|
98 |
|
|
|
99 |
This flag is used with __AF_INET6__ to further request |
|
|
100 |
that queries for IPv6 addresses should not be made unless |
|
|
101 |
the system has at least one IPv6 address assigned to a |
|
|
102 |
network interface, and that queries for IPv4 addresses |
|
|
103 |
should not be made unless the system has at least one IPv4 |
|
|
104 |
address assigned to a network interface. This flag may be |
|
|
105 |
used by itself or with the __AI_V4MAPPED__ |
|
|
106 |
flag. |
|
|
107 |
|
|
|
108 |
|
|
|
109 |
__AI_ALL__ |
|
|
110 |
|
|
|
111 |
|
|
|
112 |
This flag is equivalent to __(AI_ADDRCONFIG | |
|
|
113 |
AI_V4MAPPED)__. |
|
|
114 |
|
|
|
115 |
|
|
|
116 |
__getipnodebyaddr parameters__ |
|
|
117 |
|
|
|
118 |
|
|
|
119 |
The getipnodebyaddr(3) function looks up the name of |
|
|
120 |
the host whose network address is specified by the |
|
|
121 |
''addr'' parameter. The ''af'' parameter specifies one |
|
|
122 |
of the following values: |
|
|
123 |
|
|
|
124 |
|
|
|
125 |
__AF_INET__ |
|
|
126 |
|
|
|
127 |
|
|
|
128 |
The ''addr'' parameter points to a __struct in_addr__ |
|
|
129 |
and ''len'' must be set to __sizeof(struct |
|
|
130 |
in_addr)__. |
|
|
131 |
|
|
|
132 |
|
|
|
133 |
__AF_INET6__ |
|
|
134 |
|
|
|
135 |
|
|
|
136 |
The ''addr'' parameter points to a __struct in6_addr__ |
|
|
137 |
and ''len'' must be set to __sizeof(struct |
|
|
138 |
in6_addr)__. |
|
|
139 |
!!RETURN VALUE |
|
|
140 |
|
|
|
141 |
|
|
|
142 |
A null pointer is returned if an error occurred, and |
|
|
143 |
''error_num'' will contain an error code from the |
|
|
144 |
following list: |
|
|
145 |
|
|
|
146 |
|
|
|
147 |
__HOST_NOT_FOUND__ |
|
|
148 |
|
|
|
149 |
|
|
|
150 |
The host name or network address was not found. |
|
|
151 |
|
|
|
152 |
|
|
|
153 |
__NO_ADDRESS__ |
|
|
154 |
|
|
|
155 |
|
|
|
156 |
The domain name server recognized the network address or |
|
|
157 |
name, but no answer was returned. This can happen if the |
|
|
158 |
network host has only IPv4 addresses and a request has been |
|
|
159 |
made for IPv6 information only, or vice versa. |
|
|
160 |
|
|
|
161 |
|
|
|
162 |
__NO_RECOVERY__ |
|
|
163 |
|
|
|
164 |
|
|
|
165 |
The domain name server returned a permanent failure |
|
|
166 |
response. |
|
|
167 |
|
|
|
168 |
|
|
|
169 |
__TRY_AGAIN__ |
|
|
170 |
|
|
|
171 |
|
|
|
172 |
The domain name server returned a temporary failure |
|
|
173 |
response. You might have better luck next time. |
|
|
174 |
|
|
|
175 |
|
|
|
176 |
A successful query returns a pointer to a __hostent__ |
|
|
177 |
structure that contains the following fields: |
|
|
178 |
|
|
|
179 |
|
|
|
180 |
__h_name__ |
|
|
181 |
|
|
|
182 |
|
|
|
183 |
This is the official name of this network host. |
|
|
184 |
|
|
|
185 |
|
|
|
186 |
__h_aliases__ |
|
|
187 |
|
|
|
188 |
|
|
|
189 |
This is an array of pointers to unofficial aliases for the |
|
|
190 |
same host. The array is terminated by a null |
|
|
191 |
pointer. |
|
|
192 |
|
|
|
193 |
|
|
|
194 |
__h_addrtype__ |
|
|
195 |
|
|
|
196 |
|
|
|
197 |
This is a copy of the ''af'' parameter to |
|
|
198 |
getipnodebyname(3) or getipnodebyaddr(3). |
|
|
199 |
''h_addrtype'' will always be __AF_INET__ if the |
|
|
200 |
''af'' parameter was __AF_INET__. ''h_addrtype'' |
|
|
201 |
will always be __AF_INET6__ if the ''af'' parameter |
|
|
202 |
was __AF_INET6__. |
|
|
203 |
|
|
|
204 |
|
|
|
205 |
__h_length__ |
|
|
206 |
|
|
|
207 |
|
|
|
208 |
This field will be set to __sizeof(struct in_addr)__ if |
|
|
209 |
''h_addrtype'' is AF_INET, and to __sizeof(struct |
|
|
210 |
in6_addr)__ if ''h_addrtype'' is AF_INET6. |
|
|
211 |
|
|
|
212 |
|
|
|
213 |
__h_addr_list__ |
|
|
214 |
|
|
|
215 |
|
|
|
216 |
This is an array of one or more pointers to network address |
|
|
217 |
structures for the network host. The array is terminated by |
|
|
218 |
a null pointer. |
|
|
219 |
!!SEE ALSO |
|
|
220 |
|
|
|
221 |
|
|
|
222 |
getaddrinfo(3), inet_ntop(3), |
|
|
223 |
inet_pton(3) |
|
|
224 |
---- |