OSDN Git Service

Convert release and draft pages to UTF-8.
[linuxjm/jm.git] / manual / LDP_man-pages / release / man3 / getipnodebyname.3
1 .\" Copyright 2000 Sam Varshavchik <mrsam@courier-mta.com>
2 .\"
3 .\" Permission is granted to make and distribute verbatim copies of this
4 .\" manual provided the copyright notice and this permission notice are
5 .\" preserved on all copies.
6 .\"
7 .\" Permission is granted to copy and distribute modified versions of this
8 .\" manual under the conditions for verbatim copying, provided that the
9 .\" entire resulting derived work is distributed under the terms of a
10 .\" permission notice identical to this one.
11 .\"
12 .\" Since the Linux kernel and libraries are constantly changing, this
13 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
14 .\" responsibility for errors or omissions, or for damages resulting from
15 .\" the use of the information contained herein.  The author(s) may not
16 .\" have taken the same level of care in the production of this manual,
17 .\" which is licensed free of charge, as they might when working
18 .\" professionally.
19 .\"
20 .\" Formatted or processed versions of this manual, if unaccompanied by
21 .\" the source, must acknowledge the copyright and authors of this work.
22 .\"
23 .\" References: RFC 2553
24 .\"
25 .\" Japanese Version Copyright (c) 2001 NAKANO Takeo all rights reserved.
26 .\" Translated Sun Jan 14 2001 by NAKANO Takeo <nakano@apm.seikei.ac.jp>
27 .\" Updated Tue Nov 26 2002 by Kentaro Shirakata <argrath@ub32.org>
28 .\"
29 .\"WORD:        null pointer    ヌル・ポインター
30 .\"
31 .TH GETIPNODEBYNAME 3 2010-09-04 "Linux" "Linux Programmer's Manual"
32 .SH 名前
33 getipnodebyname, getipnodebyaddr, freehostent \- ネットワークホストの名前とアドレスの取得
34 .SH 書式
35 .nf
36 .B #include <sys/types.h>
37 .B #include <sys/socket.h>
38 .B #include <netdb.h>
39 .sp
40 .BI "struct hostent *getipnodebyname(const char *" name ", int " af ,
41 .BI "                                int " flags ", int *" error_num );
42 .sp
43 .BI "struct hostent *getipnodebyaddr(const void *" addr ", size_t " len ,
44 .BI "                                int " af ", int *" "error_num" );
45 .sp
46 .BI "void freehostent(struct hostent *" "ip" );
47 .fi
48 .SH 説明
49 これらの関数は非推奨である (glibc では利用できない)。
50 代わりに
51 .BR getaddrinfo (3)
52
53 .BR getnameinfo (3)
54 を使うこと。
55 .LP
56 .BR getipnodebyname ()
57
58 .BR getipnodebyaddr ()
59 は、ネットワークホストの名前とアドレスを返す。
60 これらの関数は、以下の構造体へのポインタを返す。
61 .sp
62 .in +4n
63 .nf
64 struct hostent {
65     char  *h_name;
66     char **h_aliases;
67     int    h_addrtype;
68     int    h_length;
69     char **h_addr_list;
70 };
71 .fi
72 .in
73 .PP
74 これらの関数は、 IPv4 ネットワークアドレスファミリにしかアクセスできない
75 .BR gethostbyname (3)
76
77 .BR gethostbyaddr (3)
78 を置き換えるものである。
79 .BR getipnodebyname ()
80 関数と
81 .BR getipnodebyaddr ()
82 関数は複数のネットワークアドレスファミリーにアクセス可能になっている。
83 .PP
84 これらの関数は、
85 .B gethostby
86 の関数群と異なり、動的に割り当てられたメモリへのポインタを返す。
87 呼び出し元がこれらの
88 .I hostent
89 構造体を必要としなくなった後は、
90 .BR freehostent ()
91 関数を用いれば動的な割り当てメモリを解放できる。
92 .SS getipnodebyname() の引き数
93 .BR getipnodebyname ()
94 関数は
95 .I name
96 引き数で指定されたホストのネットワークアドレスを引く。
97 .I af
98 引き数には以下の値のいずれかを指定する。
99 .TP
100 .B AF_INET
101 .I name
102 引き数は、ドットで 4 つに区切られた IPv4 アドレスか、
103 IPv4 ネットワークホストの名前へのポインタである。
104 .TP
105 .B AF_INET6
106 .I name
107 引き数は、16 進の IPv6 アドレスか、
108 IPv6 ネットワークホストの名前へのポインタである。
109 .PP
110 .I flags
111 パラメータには追加のオプションを指定する。
112 複数のフラグを指定するには、それらのビット単位の OR をとって指定すればよい。
113 オプションをひとつも指定したくないときには、
114 .I flags
115 に 0 を設定する必要がある。
116 .TP
117 .B AI_V4MAPPED
118 このフラグは
119 .B AF_INET6
120 と共に用いられ、IPv6 アドレスの代わりに IPv4 アドレスを問い合わせる。
121 問い合わせる IPv4 アドレスは IPv6 アドレスにマップされる。
122 .TP
123 .B AI_ALL
124 このフラグは
125 .B AI_V4MAPPED
126 と共に用いられ、IPv4 アドレスと IPv6 アドレスの両方を問い合わせる。
127 見つかった IPv4 アドレスは、すべて IPv6 アドレスにマップされる。
128 .TP
129 .B AI_ADDRCONFIG
130 このフラグは
131 .B AF_INET6
132 と共に用いられ、
133 IPv6 が割り当てられたネットワークインターフェースが
134 システムにひとつもなければ IPv6 アドレスの問い合わせを行わず、
135 IPv4 が割り当てられたネットワークインターフェースが
136 システムにひとつもなければ IPv4 アドレスの問い合わせを行わないように要求する。
137 このフラグは単独でも、あるいは
138 .B AI_V4MAPPED
139 フラグと共にでも用いることができる。
140 .TP
141 .B AI_DEFAULT
142 このフラグは
143 .BR (AI_ADDRCONFIG | AI_V4MAPPED)
144 と等価である。
145 .SS "getipnodebyaddr() の引き数"
146 .BR getipnodebyaddr ()
147 関数は、ネットワークアドレスが
148 .I addr
149 引き数で指定されたホストの名前を引く。
150 .I af
151 引き数には以下の値のいずれかを指定する。
152 .TP
153 .B AF_INET
154 .I addr
155 引き数は
156 .I struct in_addr
157 へのポインターであり、
158 .I len
159 引き数は
160 .I sizeof(struct in_addr)
161 に設定しなければならない。
162 .TP
163 .B AF_INET6
164 .I addr
165 引き数は
166 .I struct in6_addr
167 へのポインターであり、
168 .I len
169 引き数は
170 .I sizeof(struct in6_addr)
171 に設定しなければならない。
172 .SH 返り値
173 エラーが起こるとヌル・ポインターが返され、
174 .I error_num
175 に以下にリストされたエラーコードのいずれかが設定される。
176 .TP
177 .B HOST_NOT_FOUND
178 ホスト名またはネットワークアドレスが見つからなかった。
179 .TP
180 .B NO_ADDRESS
181 ドメインネームサーバーは
182 そのネットワークアドレスまたはネットワーク名を認識したが、
183 返事が返ってこなかった。原因としては、
184 例えば IPv4 アドレスしか持たないネットワークホストに対して
185 IPv6 の情報の問い合わせが行われた (およびその逆) などが考えられる。
186 .TP
187 .B NO_RECOVERY
188 ドメインネームサーバーから恒久的な失敗 (permanent failure)
189 を意味する返事が返された。
190 .TP
191 .B TRY_AGAIN
192 ネームサーバーから一時的な失敗 (temporary failure)
193 を意味する返事が返された。次にはもうちょっと運が必要かも。
194 .PP
195 問い合わせに成功すると、
196 .I hostent
197 構造体へのポインタが返される。
198 この構造体は以下のフィールドからなる。
199 .TP
200 .I h_name
201 これはこのネットワークホストのオフィシャルな名前である。
202 .TP
203 .I h_aliases
204 これは、そのホストのオフィシャルでない別名へのポインターの配列である。
205 配列はヌル・ポインターで終端する。
206 .TP
207 .I h_addrtype
208 これは
209 .BR getipnodebyname ()
210 または
211 .BR getipnodebyaddr ()
212 に与えられた
213 .I af
214 引き数のコピーである。
215 .I af
216 引き数が
217 .B AF_INET
218 なら
219 .I h_addrtype
220 は常に
221 .B AF_INET
222 になり、
223 .I af
224 引き数が
225 .B AF_INET6
226 なら
227 .I h_addrtype
228 も常に
229 .B AF_INET6
230 になる。
231 .TP
232 .I h_length
233 このフィールドは、
234 .I h_addrtype
235
236 .B AF_INET
237 なら
238 .I sizeof(struct in_addr)
239 に、
240 .I h_addrtype
241
242 .B AF_INET6
243 なら
244 .I sizeof(struct in6_addr)
245 に設定される。
246 .TP
247 .I h_addr_list
248 これはひとつ以上のポインターの配列で、
249 それぞれのポインターは、
250 そのネットワークホストに対応するネットワークアドレス構造体を指す。
251 この配列はヌル・ポインターで終端する。
252 .SH 準拠
253 RFC\ 2553.
254 .\" POSIX.1-2001 にはない。
255 .SH 注意
256 これらの関数は glibc 2.1.91-95 に存在したが、再び削除された。
257 いくつかの UNIX 風システムはこれらの関数に対応しているが、
258 これらの関数は全て推奨されない。
259 .SH 関連項目
260 .BR getaddrinfo (3),
261 .BR getnameinfo (3),
262 .BR inet_ntop (3),
263 .BR inet_pton (3)