OSDN Git Service

(split) DP: release pages (catch up to 3.50).
[linuxjm/LDP_man-pages.git] / release / man3 / getipnodebyname.3
1 .\" Copyright 2000 Sam Varshavchik <mrsam@courier-mta.com>
2 .\"
3 .\" %%%LICENSE_START(VERBATIM)
4 .\" Permission is granted to make and distribute verbatim copies of this
5 .\" manual provided the copyright notice and this permission notice are
6 .\" preserved on all copies.
7 .\"
8 .\" Permission is granted to copy and distribute modified versions of this
9 .\" manual under the conditions for verbatim copying, provided that the
10 .\" entire resulting derived work is distributed under the terms of a
11 .\" permission notice identical to this one.
12 .\"
13 .\" Since the Linux kernel and libraries are constantly changing, this
14 .\" manual page may be incorrect or out-of-date.  The author(s) assume no
15 .\" responsibility for errors or omissions, or for damages resulting from
16 .\" the use of the information contained herein.  The author(s) may not
17 .\" have taken the same level of care in the production of this manual,
18 .\" which is licensed free of charge, as they might when working
19 .\" professionally.
20 .\"
21 .\" Formatted or processed versions of this manual, if unaccompanied by
22 .\" the source, must acknowledge the copyright and authors of this work.
23 .\" %%%LICENSE_END
24 .\"
25 .\" References: RFC 2553
26 .\"*******************************************************************
27 .\"
28 .\" This file was generated with po4a. Translate the source file.
29 .\"
30 .\"*******************************************************************
31 .TH GETIPNODEBYNAME 3 2010\-09\-04 Linux "Linux Programmer's Manual"
32 .SH 名前
33 getipnodebyname, getipnodebyaddr, freehostent \- ネットワークホストの名前とアドレスの取得
34 .SH 書式
35 .nf
36 \fB#include <sys/types.h>\fP
37 \fB#include <sys/socket.h>\fP
38 \fB#include <netdb.h>\fP
39 .sp
40 \fBstruct hostent *getipnodebyname(const char *\fP\fIname\fP\fB, int \fP\fIaf\fP\fB,\fP
41 \fB                                int \fP\fIflags\fP\fB, int *\fP\fIerror_num\fP\fB);\fP
42 .sp
43 \fBstruct hostent *getipnodebyaddr(const void *\fP\fIaddr\fP\fB, size_t \fP\fIlen\fP\fB,\fP
44 \fB                                int \fP\fIaf\fP\fB, int *\fP\fIerror_num\fP\fB);\fP
45 .sp
46 \fBvoid freehostent(struct hostent *\fP\fIip\fP\fB);\fP
47 .fi
48 .SH 説明
49 これらの関数は非推奨である (glibc では利用できない)。 代わりに \fBgetaddrinfo\fP(3)  と \fBgetnameinfo\fP(3)
50 を使うこと。
51 .LP
52 \fBgetipnodebyname\fP()  と \fBgetipnodebyaddr\fP()  は、ネットワークホストの名前とアドレスを返す。
53 これらの関数は、以下の構造体へのポインタを返す。
54 .sp
55 .in +4n
56 .nf
57 struct hostent {
58     char  *h_name;
59     char **h_aliases;
60     int    h_addrtype;
61     int    h_length;
62     char **h_addr_list;
63 };
64 .in
65 .fi
66 .PP
67 これらの関数は、 IPv4 ネットワークアドレスファミリにしかアクセスできない \fBgethostbyname\fP(3)  や
68 \fBgethostbyaddr\fP(3)  を置き換えるものである。 \fBgetipnodebyname\fP()  関数と
69 \fBgetipnodebyaddr\fP()  関数は複数のネットワークアドレスファミリーにアクセス可能になっている。
70 .PP
71 これらの関数は、 \fBgethostby\fP の関数群と異なり、動的に割り当てられたメモリへのポインタを返す。 呼び出し元がこれらの \fIhostent\fP
72 構造体を必要としなくなった後は、 \fBfreehostent\fP()  関数を用いれば動的な割り当てメモリを解放できる。
73 .SS "getipnodebyname() の引き数"
74 \fBgetipnodebyname\fP()  関数は \fIname\fP 引き数で指定されたホストのネットワークアドレスを引く。 \fIaf\fP
75 引き数には以下の値のいずれかを指定する。
76 .TP 
77 \fBAF_INET\fP
78 \fIname\fP 引き数は、ドットで 4 つに区切られた IPv4 アドレスか、 IPv4 ネットワークホストの名前へのポインタである。
79 .TP 
80 \fBAF_INET6\fP
81 \fIname\fP 引き数は、16 進の IPv6 アドレスか、 IPv6 ネットワークホストの名前へのポインタである。
82 .PP
83 \fIflags\fP パラメータには追加のオプションを指定する。 複数のフラグを指定するには、それらのビット単位の OR をとって指定すればよい。
84 オプションをひとつも指定したくないときには、 \fIflags\fP に 0 を設定する必要がある。
85 .TP 
86 \fBAI_V4MAPPED\fP
87 このフラグは \fBAF_INET6\fP と共に用いられ、IPv6 アドレスの代わりに IPv4 アドレスを問い合わせる。 問い合わせる IPv4
88 アドレスは IPv6 アドレスにマップされる。
89 .TP 
90 \fBAI_ALL\fP
91 このフラグは \fBAI_V4MAPPED\fP と共に用いられ、IPv4 アドレスと IPv6 アドレスの両方を問い合わせる。 見つかった IPv4
92 アドレスは、すべて IPv6 アドレスにマップされる。
93 .TP 
94 \fBAI_ADDRCONFIG\fP
95 このフラグは \fBAF_INET6\fP と共に用いられ、 IPv6 が割り当てられたネットワークインターフェースが システムにひとつもなければ IPv6
96 アドレスの問い合わせを行わず、 IPv4 が割り当てられたネットワークインターフェースが システムにひとつもなければ IPv4
97 アドレスの問い合わせを行わないように要求する。 このフラグは単独でも、あるいは \fBAI_V4MAPPED\fP フラグと共にでも用いることができる。
98 .TP 
99 \fBAI_DEFAULT\fP
100 このフラグは \fB(AI_ADDRCONFIG\fP|\fBAI_V4MAPPED)\fP と等価である。
101 .SS "getipnodebyaddr() の引き数"
102 \fBgetipnodebyaddr\fP()  関数は、ネットワークアドレスが \fIaddr\fP 引き数で指定されたホストの名前を引く。 \fIaf\fP
103 引き数には以下の値のいずれかを指定する。
104 .TP 
105 \fBAF_INET\fP
106 \fIaddr\fP 引き数は \fIstruct in_addr\fP へのポインターであり、 \fIlen\fP 引き数は \fIsizeof(struct
107 in_addr)\fP に設定しなければならない。
108 .TP 
109 \fBAF_INET6\fP
110 \fIaddr\fP 引き数は \fIstruct in6_addr\fP へのポインターであり、 \fIlen\fP 引き数は \fIsizeof(struct
111 in6_addr)\fP に設定しなければならない。
112 .SH 返り値
113 エラーが起こるとヌル・ポインターが返され、 \fIerror_num\fP に以下にリストされたエラーコードのいずれかが設定される。
114 .TP 
115 \fBHOST_NOT_FOUND\fP
116 ホスト名またはネットワークアドレスが見つからなかった。
117 .TP 
118 \fBNO_ADDRESS\fP
119 ドメインネームサーバーは そのネットワークアドレスまたはネットワーク名を認識したが、 返事が返ってこなかった。原因としては、 例えば IPv4
120 アドレスしか持たないネットワークホストに対して IPv6 の情報の問い合わせが行われた (およびその逆) などが考えられる。
121 .TP 
122 \fBNO_RECOVERY\fP
123 ドメインネームサーバーから恒久的な失敗 (permanent failure)  を意味する返事が返された。
124 .TP 
125 \fBTRY_AGAIN\fP
126 ネームサーバーから一時的な失敗 (temporary failure)  を意味する返事が返された。次にはもうちょっと運が必要かも。
127 .PP
128 問い合わせに成功すると、 \fIhostent\fP 構造体へのポインタが返される。 この構造体は以下のフィールドからなる。
129 .TP 
130 \fIh_name\fP
131 これはこのネットワークホストのオフィシャルな名前である。
132 .TP 
133 \fIh_aliases\fP
134 これは、そのホストのオフィシャルでない別名へのポインターの配列である。 配列はヌル・ポインターで終端する。
135 .TP 
136 \fIh_addrtype\fP
137 これは \fBgetipnodebyname\fP()  または \fBgetipnodebyaddr\fP()  に与えられた \fIaf\fP 引き数のコピーである。
138 \fIaf\fP 引き数が \fBAF_INET\fP なら \fIh_addrtype\fP は常に \fBAF_INET\fP になり、 \fIaf\fP 引き数が
139 \fBAF_INET6\fP なら \fIh_addrtype\fP も常に \fBAF_INET6\fP になる。
140 .TP 
141 \fIh_length\fP
142 このフィールドは、 \fIh_addrtype\fP が \fBAF_INET\fP なら \fIsizeof(struct in_addr)\fP に、
143 \fIh_addrtype\fP が \fBAF_INET6\fP なら \fIsizeof(struct in6_addr)\fP に設定される。
144 .TP 
145 \fIh_addr_list\fP
146 これはひとつ以上のポインターの配列で、 それぞれのポインターは、 そのネットワークホストに対応するネットワークアドレス構造体を指す。
147 この配列はヌル・ポインターで終端する。
148 .SH 準拠
149 .\" Not in POSIX.1-2001.
150 RFC\ 2553.
151 .SH 注意
152 これらの関数は glibc 2.1.91\-95 に存在したが、再び削除された。 いくつかの UNIX 風システムはこれらの関数に対応しているが、
153 これらの関数は全て推奨されない。
154 .SH 関連項目
155 \fBgetaddrinfo\fP(3), \fBgetnameinfo\fP(3), \fBinet_ntop\fP(3), \fBinet_pton\fP(3)
156 .SH この文書について
157 この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.50 の一部
158 である。プロジェクトの説明とバグ報告に関する情報は
159 http://www.kernel.org/doc/man\-pages/ に書かれている。