OSDN Git Service

Import translated manuals from JM CVS Repository.
[linuxjm/jm.git] / manual / LDP_man-pages / release / man3 / getnameinfo.3
1 .\" This page is in the public domain.
2 .\" Almost all details are from RFC 2553.
3 .\"
4 .\" 2004-12-14, mtk, Added EAI_OVERFLOW error
5 .\" 2004-12-14 Fixed description of error return
6 .\"
7 .\" Translated 2005-02-26, Akihiro MOTOKI <amotoki@dd.iij4u.or.jp>
8 .\" Updated 2007-01-07, Akihiro MOTOKI, LDP v2.43
9 .\" Updated 2008-08-11, Akihiro MOTOKI, LDP v3.05
10 .\" Updated 2010-04-10, Akihiro MOTOKI, LDP v3.24
11 .\"
12 .TH GETNAMEINFO 3 2009-12-03 "GNU" "Linux Programmer's Manual"
13 .SH Ì¾Á°
14 getnameinfo \- ¥¢¥É¥ì¥¹¤«¤é̾Á°¤Ø¤ÎÊÑ´¹¤ò¥×¥í¥È¥³¥ë¤Ë°Í¸¤·¤Ê¤¤¤«¤¿¤Á¤Ç¹Ô¤¦
15 .SH ½ñ¼°
16 .nf
17 .B #include <sys/socket.h>
18 .B #include <netdb.h>
19 .sp
20 .BI "int getnameinfo(const struct sockaddr *" "sa" ", socklen_t " "salen" ,
21 .BI "                char *" "host" ", size_t " "hostlen" ,
22 .BI "                char *" "serv" ", size_t " "servlen" ", int " "flags" );
23 .fi
24 .sp
25 .in -4n
26 glibc ¸þ¤±¤Îµ¡Ç½¸¡ºº¥Þ¥¯¥í¤ÎÍ×·ï
27 .RB ( feature_test_macros (7)
28 »²¾È):
29 .ad l
30 .in
31 .sp
32 .BR getnameinfo ():
33 _POSIX_C_SOURCE\ >=\ 1 || _XOPEN_SOURCE || _POSIX_SOURCE
34 .ad b
35 .SH ÀâÌÀ
36 .BR getnameinfo ()
37 ´Ø¿ô¤Ï¡¢
38 .BR getaddrinfo (3)
39 ¤ÎµÕ¤ÎÆ°ºî¤ò¹Ô¤¦¡£¤Ä¤Þ¤ê¡¢¥×¥í¥È¥³¥ë¤Ë°Í¸¤·¤Ê¤¤¤«¤¿¤Á¤Ç
40 ¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤«¤éÂбþ¤¹¤ë¥Û¥¹¥È̾¤È¥µ¡¼¥Ó¥¹¤Ø¤ÎÊÑ´¹¤ò¹Ô¤¦¡£
41 ¤³¤Î´Ø¿ô¤Ï
42 .BR gethostbyaddr (3)
43 ¤È
44 .BR getservbyport (3)
45 ¤Îµ¡Ç½¤ò°ì¤Ä¤Ë¤·¤¿¤â¤Î¤À¤¬¡¢
46 ¤³¤ì¤é¤Î´Ø¿ô¤È°ã¤¤¡¢
47 .BR getnameinfo (3)
48 ¤Ï¥ê¥¨¥ó¥È¥é¥ó¥È¤Ç¤¢¤ê¡¢IPv4 ¤È IPv6 ¤Îº¹Ê¬¤Ë°Í¸¤·¤Ê¤¤¤«¤¿¤Á¤Ç
49 ¥×¥í¥°¥é¥à¤ò½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£
50
51 .I sa
52 °ú¤­¿ô¤Ï¡¢
53 IP ¥¢¥É¥ì¥¹¤È¥Ý¡¼¥ÈÈÖ¹æ¤Î¾ðÊó¤òÊÝ»ý¤·¤Æ¤¤¤ë
54 ÈÆÍÑŪ¤Ê¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¹½Â¤ÂÎ
55 .RI ( sockaddr_in
56 ·¿¤Þ¤¿¤Ï
57 .I sockaddr_in6
58 ·¿) ¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£
59 .I salen
60 ¤Ï
61 .I sa
62 ¤Î¥µ¥¤¥º¤Ç¤¢¤ë¡£
63 .I host
64 ¤È
65 .I serv
66 °ú¤­¿ô¤Ï¡¢(¤½¤ì¤¾¤ì¥µ¥¤¥º¤¬
67 .I hostlen
68 ¤È
69 .I servlen
70 ¤Î) ¸Æ¤Ó½Ð¤·Â¦¤Ç³ÎÊݤµ¤ì¤¿¥Ð¥Ã¥Õ¥¡¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ê¡¢
71 ¥Û¥¹¥È̾¤È¥µ¡¼¥Ó¥¹Ì¾¤ò´Þ¤à NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤¬
72 ¤½¤ì¤¾¤ì¤Î¥Ð¥Ã¥Õ¥¡¤Ë³ÊǼ¤µ¤ì¤ë¡£
73
74 ¥Û¥¹¥È̾¤¬ÉÔÍפǤ¢¤ë¤³¤È¤ò¤³¤Î´Ø¿ô¤ËÅÁ¤¨¤ë¤Ë¤Ï¡¢
75 .I host
76 ¤Ë NULL ¤ò»ØÄꤹ¤ë¤«¡¢
77 .I hostlen
78 ¤Ë 0 ¤ò»ØÄꤹ¤ë¡£Æ±Íͤˡ¢¥µ¡¼¥Ó¥¹Ì¾¤¬ÉÔÍפʾì¹ç¤Ï¡¢
79 .I serv
80 ¤Ë NULL ¤ò»ØÄꤹ¤ë¤«¡¢
81 .I servlen
82 ¤Ë 0 ¤ò»ØÄꤹ¤ë¡£
83 ¤·¤«¤·¡¢¥Û¥¹¥È̾¤È¥µ¡¼¥Ó¥¹Ì¾¤ÎξÊý¤òÉÔÍפÀ¤È»ØÄꤹ¤ë¤³¤È¤Ï¤Ç¤­¤Ê¤¤
84 (¤¤¤º¤ì¤«°ìÊý¤ÏÍ׵᤹¤ë¤³¤È)¡£
85
86 .I flags
87 °ú¤­¿ô¤Ç
88 .BR getnameinfo ()
89 ¤ÎÆ°ºî¤òÊѤ¨¤ë¤³¤È¤¬¤Ç¤­¤ë¡£»ØÄê¤Ç¤­¤ëÃͤϰʲ¼¤ÎÄ̤ê:
90 .TP
91 .B NI_NAMEREQD
92 »ØÄꤹ¤ë¤È¡¢¥Û¥¹¥È̾¤¬·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿¾ì¹ç¤Ë¥¨¥é¡¼¤òÊÖ¤¹¡£
93 .TP
94 .B NI_DGRAM
95 »ØÄꤹ¤ë¤È¡¢¥¹¥È¥ê¡¼¥à¥Ù¡¼¥¹ (TCP) ¤Ç¤Ê¤¯¥Ç¡¼¥¿¥°¥é¥à¥Ù¡¼¥¹ (UDP)
96 ¤Î¥µ¡¼¥Ó¥¹¤òÂоݤˤ¹¤ë¡£¿ô¤Ï¾¯¤Ê¤¤¤¬¡¢
97 UDP ¤È TCP ¤Ç°ã¤¦¥µ¡¼¥Ó¥¹¤òÄ󶡤·¤Æ¤¤¤ë¥Ý¡¼¥È
98 (512-514) ¤ËÂФ·¤ÆɬÍפȤʤ롣
99 .TP
100 .B NI_NOFQDN
101 »ØÄꤹ¤ë¤È¡¢¥í¡¼¥«¥ë¤Ê¥Û¥¹¥È¤Ë¤Ï fully qualified domain name (FQDN) ¤Î
102 ¥Û¥¹¥È̾¤ÎÉôʬ¤Î¤ß¤òÊÖ¤¹¡£
103 .TP
104 .B NI_NUMERICHOST
105 »ØÄꤹ¤ë¤È¡¢¿ôÃÍ·Á¼°¤Î¥Û¥¹¥È̾¤¬ÊÖ¤µ¤ì¤ë¡£
106 .\" Î㤨¤Ð
107 .\" .BR gethostbyaddr ()
108 .\" ¤ÎÂå¤ï¤ê¤Ë
109 .\" .BR inet_ntop ()
110 .\" ¤ò¸Æ¤Ö
111 (»ØÄꤷ¤Ê¤¯¤Æ¤â¡¢¥Î¡¼¥É¤Î̾Á°¤¬·èÄê¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¿ôÃÍ·Á¼°¤¬Ê֤뤳¤È¤¬¤¢¤ë)¡£
112 .\" POSIX.1-2003 has NI_NUMERICSCOPE, but glibc doesn't have it.
113 .TP
114 .B NI_NUMERICSERV
115 »ØÄꤹ¤ë¤È¡¢¿ôÃÍ·Á¼°¤Î¥µ¡¼¥Ó¥¹Ì¾ (Î㤨¤Ð¥Ý¡¼¥ÈÈÖ¹æ) ¤¬ÊÖ¤µ¤ì¤ë
116 (»ØÄꤷ¤Ê¤¯¤Æ¤â¡¢¥µ¡¼¥Ó¥¹Ì¾¤¬·èÄê¤Ç¤­¤Ê¤¤¾ì¹ç¤Ï¿ôÃÍ·Á¼°¤¬Ê֤뤳¤È¤¬¤¢¤ë)¡£
117 .SS "¹ñºÝ²½¥É¥á¥¤¥ó̾¤Î¤¿¤á¤Î getnameinfo() ¤Î³ÈÄ¥"
118 .PP
119 glibc 2.3.4 ¤«¤é¡¢
120 .BR getnameinfo ()
121 ¤Ë³ÈÄ¥¤¬¹Ô¤ï¤ì¡¢¥Û¥¹¥È̾¤È
122 ¹ñºÝ²½¥É¥á¥¤¥ó̾ (Internationalized Domain Name; IDN) ·Á¼°¤È¤Î´Ö¤Ç
123 Æ©²áŪ¤ÊÊÑ´¹¤¬¤Ç¤­¤ë¤è¤¦¤Ë¤Ê¤Ã¤Æ¤¤¤ë
124 (IDN ·Á¼°¤Ë¤Ä¤¤¤Æ¤Ï RFC 3490 ¤Î
125 .I "Internationalizing Domain Names in Applications (IDNA)"
126 ¤ò»²¾È)¡£3¤Ä¤Î¥Õ¥é¥°¤¬¿·¤¿¤ËÄêµÁ¤µ¤ì¤Æ¤¤¤ë:
127 .TP
128 .B NI_IDN
129 ¤³¤Î¥Õ¥é¥°¤ò»ØÄꤹ¤ë¤È¡¢É¬ÍפǤ¢¤ì¤Ð¡¢¸¡º÷½èÍý¤Ç¸«¤Ä¤«¤Ã¤¿Ì¾Á°¤Ï
130 IDN ·Á¼°¤«¤é¥í¥±¡¼¥ë¤Ë±þ¤¸¤¿Éä¹æ²½·Á¼°¤ËÊÑ´¹¤µ¤ì¤ë¡£
131 ASCII Ê¸»ú¤À¤±¤Î̾Á°¤Ï¤³¤ÎÊÑ´¹¤Ç¤Ï±Æ¶Á¤ò¼õ¤±¤Ê¤¤¡£¤³¤Î¤¿¤á¡¢
132 ´û¸¤Î¥×¥í¥°¥é¥à¤ä´Ä¶­¤Ç¤³¤Î¥Õ¥é¥°¤ò»È¤¦¤³¤È¤¬¤Ç¤­¤ë¡£
133 .TP
134 .BR NI_IDN_ALLOW_UNASSIGNED ", " NI_IDN_USE_STD3_ASCII_RULES
135 ¤³¤ì¤é¤Î¥Õ¥é¥°¤ò¥»¥Ã¥È¤¹¤ë¤È¡¢IDNA ½èÍý¤Ç»ÈÍѤµ¤ì¤ë¥Õ¥é¥°
136 IDNA_ALLOW_UNASSIGNED (̤³ä¤êÅö¤Æ¤Î Unicode ¤Î¥³¡¼¥É¥Ý¥¤¥ó¥È¤òµöÍÆ) ¤È
137 IDNA_USE_STD3_ASCII_RULES (½ÐÎϤ¬ STD3 ½àµò¤Î¥Û¥¹¥È̾¤«¤ò¥Á¥§¥Ã¥¯¤¹¤ë)
138 ¤¬¤½¤ì¤¾¤ìÍ­¸ú¤Ë¤Ê¤ë¡£
139 .SH ÊÖ¤êÃÍ
140 .\" FIXME glibc defines the following additional errors, some which
141 .\" can probably be returned by getnameinfo(); they need to
142 .\" be documented.
143 .\" #ifdef __USE_GNU
144 .\" #define EAI_INPROGRESS  -100  /* Processing request in progress.  */
145 .\" #define EAI_CANCELED    -101  /* Request canceled.  */
146 .\" #define EAI_NOTCANCELED -102  /* Request not canceled.  */
147 .\" #define EAI_ALLDONE     -103  /* All requests done.  */
148 .\" #define EAI_INTR        -104  /* Interrupted by a signal.  */
149 .\" #define EAI_IDN_ENCODE  -105  /* IDN encoding failed.  */
150 .\" #endif
151 À®¸ù¤¹¤ë¤È 0 ¤¬Ê֤ꡢ(Í׵ᤵ¤ì¤Æ¤¤¤ì¤Ð) ¥Î¡¼¥É¤È¥µ¡¼¥Ó¥¹¤Î̾Á°¤¬
152 NULL ½ªÃ¼¤µ¤ì¤¿Ê¸»úÎó¤Î·Á¼°¤Ç¤½¤ì¤¾¤ì¤Î»ØÄê¥Ð¥Ã¥Õ¥¡¤ËÊÖ¤µ¤ì¤ë
153 (¥Ð¥Ã¥Õ¥¡¤ÎŤµ¤Ë¤¢¤¦¤è¤¦¤Ë½Ì¤á¤é¤ì¤ë¤«¤â¤·¤ì¤Ê¤¤)¡£
154 ¥¨¥é¡¼¤Î¾ì¹ç¤Ï¡¢°Ê²¼¤Î 0 °Ê³°¤Î¥¨¥é¡¼¡¦¥³¡¼¥É¤¬ÊÖ¤µ¤ì¤ë:
155 .TP
156 .B EAI_AGAIN
157 »ØÄꤵ¤ì¤¿Ì¾Á°¤¬¸½»þÅÀ¤Ç¤Ï²ò·è¤Ç¤­¤Ê¤«¤Ã¤¿¡£
158 ¸å¤ÇºÆ»î¹Ô¤·¤Æ¤ß¤ë¤³¤È¡£
159 .TP
160 .B EAI_BADFLAGS
161 .I flags
162 °ú¤­¿ô¤ËÉÔÀµ¤ÊÃͤ¬Í¿¤¨¤é¤ì¤¿¡£
163 .TP
164 .B EAI_FAIL
165 ²óÉü¤Ç¤­¤Ê¤¤¥¨¥é¡¼¤¬È¯À¸¤·¤¿¡£
166 .TP
167 .B EAI_FAMILY
168 »ØÄꤷ¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤¬Ç§¼±¤Ç¤­¤Ê¤«¤Ã¤¿¡£
169 ¤¢¤ë¤¤¤Ï¥¢¥É¥ì¥¹¤ÎŤµ¤¬»ØÄꤵ¤ì¤¿¥Õ¥¡¥ß¥ê¡¼¤Ë¹ç¤¦¤â¤Î¤Ç¤Ê¤«¤Ã¤¿¡£
170 .TP
171 .B EAI_MEMORY
172 ¥á¥â¥ê¤¬Â­¤ê¤Ê¤¤¡£
173 .TP
174 .B EAI_NONAME
175 Í¿¤¨¤é¤ì¤¿¥Ñ¥é¥á¡¼¥¿¤Ç¤Ï̾Á°¤¬²ò·è¤Ç¤­¤Ê¤¤¡£
176 .B NI_NAMEREQD
177 ¤¬ÀßÄꤵ¤ì¤Æ¤¤¤¿¤¬¥Û¥¹¥È̾¤¬·èÄê¤Ç¤­¤Ê¤«¤Ã¤¿¤«¡¢
178 ¥Û¥¹¥È̾¤â¥µ¡¼¥Ó¥¹Ì¾¤âÍ׵ᤵ¤ì¤Ê¤«¤Ã¤¿¡£
179 .TP
180 .B EAI_OVERFLOW
181 .I host
182 ¤Þ¤¿¤Ï
183 .I serv
184 ¤¬»Ø¤·¤Æ¤¤¤ë¥Ð¥Ã¥Õ¥¡¤¬¾®¤µ¤¹¤®¤¿¡£
185 .TP
186 .B EAI_SYSTEM
187 ¥·¥¹¥Æ¥à¥¨¥é¡¼¤¬µ¯¤Ã¤¿¡£
188 ¥¨¥é¡¼¥³¡¼¥É¤Ï
189 .I errno
190 ¤ËÀßÄꤵ¤ì¤ë¡£
191 .PP
192 .BR gai_strerror (3)
193 ´Ø¿ô¤ò»È¤¦¤È¡¢¤³¤ì¤é¤Î¥¨¥é¡¼¡¦¥³¡¼¥É¤ò¡¢¥¨¥é¡¼¡¦¥ì¥Ý¡¼¥È¤ËŬ¤·¤¿
194 ¿Í´Ö¤¬Æɤߤ䤹¤¤Ê¸»úÎó¤ËËÝÌõ¤·¤Æ¤¯¤ì¤ë¡£
195 .SH ¥Õ¥¡¥¤¥ë
196 /etc/hosts
197 .br
198 /etc/nsswitch.conf
199 .br
200 /etc/resolv.conf
201 .SH ¥Ð¡¼¥¸¥ç¥ó
202 .BR getnameinfo ()
203 ¤Ï¡¢glibc ¥Ð¡¼¥¸¥ç¥ó 2.1 °Ê¹ß¤ÇÄ󶡤µ¤ì¤Æ¤¤¤ë¡£
204 .SH ½àµò
205 RFC\ 2553, POSIX.1-2001.
206 .SH Ãí°Õ
207 ŬÀڤʥХåե¡¥µ¥¤¥º¤òÁªÂò¤Ç¤­¤ë¤è¤¦¤Ë¡¢
208 .I <netdb.h>
209 ¤Ë°Ê²¼¤ÎÄê¿ô¤¬ÄêµÁ¤µ¤ì¤Æ¤¤¤ë¡£
210 .in +4n
211 .nf
212
213 #define NI_MAXHOST      1025
214 #define NI_MAXSERV      32
215 .fi
216 .in
217
218 glibc 2.8 °Ê¹ß¤Ç¤Ï¡¢µ¡Ç½¸¡ºº¥Þ¥¯¥í
219 .BR _BSD_SOURCE ,
220 .BR _SVID_SOURCE ,
221 .BR _GNU_SOURCE
222 ¤Î¤¤¤º¤ì¤«¤¬ÄêµÁ¤µ¤ì¤¿¾ì¹ç¤Ë¤Î¤ß¡¢¤³¤ì¤é¤ÎÄêµÁ¤¬¸ø³«¤µ¤ì¤ë¡£
223 .PP
224 Á°¼Ô¤Ï¡¢ºÇ¶á¤Î¥Ð¡¼¥¸¥ç¥ó¤Î BIND ¤Î¥Ø¥Ã¥À¥Õ¥¡¥¤¥ë
225 .I <arpa/nameser.h>
226 Ãæ¤ÎÄê¿ô
227 .B MAXDNAME
228 ¤ÈƱ¤¸ÃͤǤ¢¤ë¡£
229 ¸å¼Ô¤Ï¡¢³ä¤êÅö¤ÆºÑ¤Î¿ôÃͤˤĤ¤¤Æµ­¤·¤¿¸½ºß¤Î RFC ¤Ë
230 Îóµó¤µ¤ì¤Æ¥µ¡¼¥Ó¥¹¤«¤é¿äÎ̤·¤¿ÃͤǤ¢¤ë¡£
231 .SH Îã
232 °Ê²¼¤Î¥³¡¼¥É¤Ï¡¢»ØÄꤵ¤ì¤¿¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤ËÂФ¹¤ë
233 ¥Û¥¹¥È¤È¥µ¡¼¥Ó¥¹¤Î¿ôÃÍɽ¼°¤ò¼èÆÀ¤·¤è¤¦¤È»î¤ß¤ë¡£
234 ÆÃÄê¤Î¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ËÂФ¹¤ë»²¾È¾ðÊó¤Ï
235 °ìÀڥϡ¼¥É¥³¡¼¥É¤µ¤ì¤Æ¤¤¤Ê¤¤¤³¤È¤ËÃåÌܤ·¤Æ¤Û¤·¤¤¡£
236
237 .in +4n
238 .nf
239 struct sockaddr *sa;    /* input */
240 socklen_t len;          /* input */
241 char hbuf[NI_MAXHOST], sbuf[NI_MAXSERV];
242
243 if (getnameinfo(sa, len, hbuf, sizeof(hbuf), sbuf,
244             sizeof(sbuf), NI_NUMERICHOST | NI_NUMERICSERV) == 0)
245     printf("host=%s, serv=%s\en", hbuf, sbuf);
246 .fi
247 .in
248
249 °Ê²¼¤Ç¤Ï¥½¥±¥Ã¥È¥¢¥É¥ì¥¹¤Ë
250 µÕ¸þ¤­¤Î¥¢¥É¥ì¥¹¥Þ¥Ã¥Ô¥ó¥°¤¬Â¸ºß¤¹¤ë¤«¤ò¥Á¥§¥Ã¥¯¤·¤Æ¤¤¤ë¡£
251
252 .in +4n
253 .nf
254 struct sockaddr *sa;    /* input */
255 socklen_t len;          /* input */
256 char hbuf[NI_MAXHOST];
257
258 if (getnameinfo(sa, len, hbuf, sizeof(hbuf),
259             NULL, 0, NI_NAMEREQD))
260     printf("could not resolve hostname");
261 else
262     printf("host=%s\en", hbuf);
263 .fi
264 .in
265 .PP
266 .BR getnameinfo ()
267 ¤ò»È¤Ã¤¿¥×¥í¥°¥é¥àÎ㤬
268 .BR getaddrinfo (3)
269 ¤Ëµ­ºÜ¤µ¤ì¤Æ¤¤¤ë¡£
270 .SH ´ØÏ¢¹àÌÜ
271 .BR accept (2),
272 .BR getpeername (2),
273 .BR getsockname (2),
274 .BR recvfrom (2),
275 .BR socket (2),
276 .BR getaddrinfo (3),
277 .BR gethostbyaddr (3),
278 .BR getservbyname (3),
279 .BR getservbyport (3),
280 .BR inet_ntop (3),
281 .BR hosts (5),
282 .BR services (5),
283 .BR hostname (7),
284 .BR named (8)
285 .LP
286 R. Gilligan, S. Thomson, J. Bound and W. Stevens,
287 .IR "Basic Socket Interface Extensions for IPv6" ,
288 RFC\ 2553, March 1999.
289 .LP
290 Tatsuya Jinmei and Atsushi Onoe,
291 .IR "An Extension of Format for IPv6 Scoped Addresses" ,
292 internet draft, work in progress.
293 ftp://ftp.ietf.org/internet\-drafts/draft\-ietf\-ipngwg\-scopedaddr\-format\-02.txt
294 .LP
295 Craig Metz,
296 .IR "Protocol Independence Using the Sockets API" ,
297 Proceedings of the freenix track:
298 2000 USENIX annual technical conference, June 2000.
299 http://www.usenix.org/publications/library/proceedings/usenix2000/freenix/metzprotocol.html