X-Git-Url: http://git.osdn.net/view?a=blobdiff_plain;f=release%2Fman3%2Finet_pton.3;h=69739c5986e12e1d88d49ea80a8acfb651c33275;hb=a2b0f650fa5e3f097a33752f9ee5626f8d678fd8;hp=ca0d3afa4c44fb77a00cc45b2cc9b76c46932fbd;hpb=633a2252e0be3c867dce264a180a89ce8181d36f;p=linuxjm%2FLDP_man-pages.git diff --git a/release/man3/inet_pton.3 b/release/man3/inet_pton.3 index ca0d3afa..69739c59 100644 --- a/release/man3/inet_pton.3 +++ b/release/man3/inet_pton.3 @@ -1,6 +1,7 @@ .\" Copyright 2000 Sam Varshavchik .\" and Copyright (c) 2008 Michael Kerrisk .\" +.\" %%%LICENSE_START(VERBATIM) .\" 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. @@ -20,168 +21,88 @@ .\" .\" Formatted or processed versions of this manual, if unaccompanied by .\" the source, must acknowledge the copyright and authors of this work. +.\" %%%LICENSE_END .\" .\" References: RFC 2553 +.\"******************************************************************* +.\" +.\" This file was generated with po4a. Translate the source file. +.\" +.\"******************************************************************* .\" .\" Japanese Version Copyright (c) 2001 NAKANO Takeo all rights reserved. .\" Translated 2001-01-14, NAKANO Takeo .\" Updated 2008-08-08, Akihiro MOTOKI, LDP v3.05 .\" -.TH INET_PTON 3 2008-06-18 "Linux" "Linux Programmer's Manual" -.SH ̾Á° -inet_pton \- IPv4/IPv6 ¥¢¥É¥ì¥¹¤ò¥Æ¥­¥¹¥È·Á¼°¤«¤é¥Ð¥¤¥Ê¥ê·Á¼°¤ËÊÑ´¹¤¹¤ë -.SH ½ñ¼° +.TH INET_PTON 3 2008\-06\-18 Linux "Linux Programmer's Manual" +.SH 名前 +inet_pton \- IPv4/IPv6 アドレスをテキスト形式からバイナリ形式に変換する +.SH 書式 .nf -.B #include +\fB#include \fP -.BI "int inet_pton(int " "af" ", const char *" "src" ", void *" "dst" ); +\fBint inet_pton(int \fP\fIaf\fP\fB, const char *\fP\fIsrc\fP\fB, void *\fP\fIdst\fP\fB);\fP .fi -.SH ÀâÌÀ -¤³¤Î´Ø¿ô¤Ïʸ»úÎó -.I src -¤ò¡¢¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼ -.I af -¤Î¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¹½Â¤ÂΤËÊÑ´¹¤·¡¢ -.I dst -¤Ë¥³¥Ô¡¼¤¹¤ë¡£ -.I af -°ú¤­¿ô¤Ï -.B AF_INET -¤« -.B AF_INET6 -¤Î¤É¤Á¤é¤«¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ +.SH 説明 +この関数は文字列 \fIsrc\fP を、アドレスファミリー \fIaf\fP のネットワークアドレス構造体に変換し、 \fIdst\fP にコピーする。 \fIaf\fP +引き数は \fBAF_INET\fP か \fBAF_INET6\fP のどちらかでなければならない。 .PP -¸½ºß¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ï°Ê²¼¤ÎÄ̤ê¤Ç¤¢¤ë¡£ -.TP -.B AF_INET -.I src -¤Ï¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ô·Á¼° "\fIddd.ddd.ddd.ddd\fP" -¤Î IPv4 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -.I ddd -¤Ï 0 ¤«¤é 255 ¤Þ¤Ç¤ÎÈϰϤκÇÂç 3 ·å¤Î 10 ¿Ê¿ô¤Ç¤¢¤ë¡£ -¤³¤Î¥¢¥É¥ì¥¹¤Ï -.I "struct in_addr" -¤ËÊÑ´¹¤µ¤ì¤Æ -.I dst -¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ -.I dst -¤ÎŤµ¤Ï -.I "sizeof(struct in_addr)" -(4) ¥Ð¥¤¥È (32¥Ó¥Ã¥È) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.TP -.B AF_INET6 -.I src -¤Ï IPv6 ¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬³ÊǼ¤µ¤ì¤¿Ê¸»úÎó¤Ø¤Î¥Ý¥¤¥ó¥¿¤Ç¤¢¤ë¡£ -¤³¤Î¥¢¥É¥ì¥¹¤Ï -.I "struct in6_addr" -¤ËÊÑ´¹¤µ¤ì¤Æ -.I dst -¤Ë¥³¥Ô¡¼¤µ¤ì¤ë¡£ -.I dst -¤ÎŤµ¤Ï -.I "sizeof(struct in6_addr)" -(16) ¥Ð¥¤¥È (128 ¥Ó¥Ã¥È) ¤Ç¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -°Ê²¼¤Î 3 ¤Ä¤Î¥ë¡¼¥ë¤Ë¤·¤¿¤¬¤Ã¤¿·Á¼°¤¬ IPv6 ¥¢¥É¥ì¥¹¤È¤·¤ÆÆþÎϤǤ­¤ë¡£ +現在サポートされているアドレスファミリーは以下の通りである。 +.TP +\fBAF_INET\fP +\fIsrc\fP はドット区切りの 10 進数形式 "\fIddd.ddd.ddd.ddd\fP" の IPv4 ネットワークアドレス文字列へのポインタである。 +\fIddd\fP は 0 から 255 までの範囲の最大 3 桁の 10 進数である。 このアドレスは \fIstruct in_addr\fP に変換されて +\fIdst\fP にコピーされる。 \fIdst\fP の長さは \fIsizeof(struct in_addr)\fP (4) バイト (32ビット) +でなければならない。 +.TP +\fBAF_INET6\fP +\fIsrc\fP は IPv6 ネットワークアドレスが格納された文字列へのポインタである。 このアドレスは \fIstruct in6_addr\fP +に変換されて \fIdst\fP にコピーされる。 \fIdst\fP の長さは \fIsizeof(struct in6_addr)\fP (16) バイト (128 +ビット) でなければならない。 以下の 3 つのルールにしたがった形式が IPv6 アドレスとして入力できる。 .RS .IP 1. 3 -¿ä¾©·Á¼°¤Ï -.I x:x:x:x:x:x:x:x -¤Ç¤¢¤ë¡£¤³¤Î·Á¼°¤Ï 8 ¸Ä¤Î 16 ¿Ê¿ô¤«¤é¹½À®¤µ¤ì¡¢ -³Æ¡¹¤Î 16 ¿Ê¿ô¤Ï 16 ¥Ó¥Ã¥ÈÃͤòɽ¤¹ -.RI ( x -¤ÏºÇÂç 4 ·å¤Î 16 ¿Ê¿ô¤Ç¤¢¤ë)¡£ +推奨形式は \fIx:x:x:x:x:x:x:x\fP である。この形式は 8 個の 16 進数から構成され、 各々の 16 進数は 16 ビット値を表す +(\fIx\fP は最大 4 桁の 16 進数である)。 .IP 2. -¿ä¾©·Á¼°¤ÎÃæ¤ÎϢ³¤¹¤ë 0 ¤ÎÎó¤Ï -.I :: -¤Ëû½Ì¤Ç¤­¤ë¡£¥¢¥É¥ì¥¹Ãæ¤Ç»ÈÍѤǤ­¤ë -.I :: -¤Ï 1 ¸Ä¤À¤±¤Ç¤¢¤ë¡£ -Î㤨¤Ð¡¢¥ë¡¼¥×¥Ð¥Ã¥¯¥¢¥É¥ì¥¹ -.I 0:0:0:0:0:0:0:1 -¤Ï -.I ::1 -¤Èû½Ì¤Ç¤­¤ë¡£ -Á´¥Ó¥Ã¥È¤¬ 0 ¤Ç¹½À®¤µ¤ì¤ë¥ï¥¤¥ë¥É¥«¡¼¥É¥¢¥É¥ì¥¹¤Ï -.I :: -¤Èµ­ºÜ¤Ç¤­¤ë¡£ +推奨形式の中の連続する 0 の列は \fI::\fP に短縮できる。アドレス中で使用できる \fI::\fP は 1 個だけである。 例えば、ループバックアドレス +\fI0:0:0:0:0:0:0:1\fP は \fI::1\fP と短縮できる。 全ビットが 0 で構成されるワイルドカードアドレスは \fI::\fP と記載できる。 .IP 3. -IPv4 ¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤¿ IPv6 ¥¢¥É¥ì¥¹¤òɽµ­¤¹¤ë¤Ë¤ÏÊ̤ηÁ¼°¤¬ÊØÍø¤Ç¤¢¤ë¡£ -¤³¤ÎÊ̤ηÁ¼°¤Ï -.I x:x:x:x:x:x:d.d.d.d -¤È½ñ¤¯¤³¤È¤¬¤Ç¤­¤ë¡£ -ºÇ½é¤Î 6 ¸Ä¤Î -.I x -¤Ï¥¢¥É¥ì¥¹¤ò 16 ¥Ó¥Ã¥Èñ°Ì¤Ë¶èÀڤ俤Ȥ­¤Î¾å°Ì¦ 6 ¸Äʬ (¤Ä¤Þ¤ê 96 ¥Ó¥Ã¥Èʬ) -¤òÄêµÁ¤¹¤ë 16 ¿Ê¿ô¤Ç¤¢¤ê¡¢ -.I d -¤ÎÉôʬ¤Ï¥¢¥É¥ì¥¹¤Î²¼°Ì 32 ¥Ó¥Ã¥È¤ò¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ôɽµ­¤Çɽ¤·¤¿¤â¤Î¤Ç¤¢¤ë¡£ -.I ::FFFF:204.152.189.116 -¤Ï¤³¤Î·Á¼°¤ÎÎã¤Ç¤¢¤ë¡£ +IPv4 をマッピングした IPv6 アドレスを表記するには別の形式が便利である。 この別の形式は \fIx:x:x:x:x:x:d.d.d.d\fP +と書くことができる。 最初の 6 個の \fIx\fP はアドレスを 16 ビット単位に区切ったときの上位側 6 個分 (つまり 96 ビット分) +を定義する 16 進数であり、 \fId\fP の部分はアドレスの下位 32 ビットをドット区切りの 10 進数表記で表したものである。 +\fI::FFFF:204.152.189.116\fP はこの形式の例である。 .RE .IP -IPv6 ¥¢¥É¥ì¥¹¤Îɽ¸½ÊýË¡¤Î¾ÜºÙ¤Ë¤Ä¤¤¤Æ¤Ï RFC 2373 ¤ò»²¾È¤Î¤³¤È¡£ -.SH ÊÖ¤êÃÍ -À®¸ù¤¹¤ë (¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹¤¬Àµ¾ï¤ËÊÑ´¹¤µ¤ì¤ë) ¤È¡¢ -.BR inet_pton () -¤Ï 1 ¤òÊÖ¤¹¡£ -.I src -¤¬»ØÄꤵ¤ì¤¿¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤ËÂФ¹¤ë -Àµ¤·¤¤¥Í¥Ã¥È¥ï¡¼¥¯¥¢¥É¥ì¥¹É½µ­¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -0 ¤òÊÖ¤¹¡£ -.I af -¤¬¥µ¥Ý¡¼¥È¤µ¤ì¤Æ¤¤¤ë¥¢¥É¥ì¥¹¥Õ¥¡¥ß¥ê¡¼¤Ç¤Ê¤¤¾ì¹ç¤Ë¤Ï¡¢ -\-1 ¤òÊÖ¤·¡¢ -.I errno -¤Ë -.B EAFNOSUPPORT -¤òÀßÄꤹ¤ë¡£ -.SH ½àµò -POSIX.1-2001. -.SH Ãí°Õ -.BR inet_aton (3) -¤ä -.BR inet_addr (3) -¤È°Û¤Ê¤ê¡¢ -.BR inet_pton () -¤Ï IPv6 ¥¢¥É¥ì¥¹¤ËÂбþ¤·¤Æ¤¤¤ë¡£ -°ìÊý¤Ç¡¢ -.BR inet_pton () -¤¬¼õ¤±ÉÕ¤±¤ë IPv4 ¥¢¥É¥ì¥¹¤Ï¥É¥Ã¥È¶èÀÚ¤ê¤Î 10 ¿Ê¿ôɽµ­¤À¤±¤Ç¤¢¤ë¡£ -¤³¤ì¤ËÂФ·¡¢ -.BR inet_aton (3) -¤ä -.BR inet_addr (3) -¤Ç¤Ï¤â¤Ã¤È°ìÈÌŪ¤Ê¥É¥Ã¥È¶èÀÚ¤ê¤Î¿ô»úɽµ­ (16 ¿Ê¿ô¤ä 8 ¿Ê¿ô¤Î·Á¼°¤ä¡¢ -4 ¥Ð¥¤¥ÈÁ´¤Æ¤òÌÀ¼¨Åª¤Ë½ñ¤«¤Ê¤¯¤Æ¤â¤è¤¤·Á¼°) ¤¬»ÈÍѤǤ­¤ë¡£ -¥É¥Ã¥È¶èÀÚ¤ê¤Î¿ô»úɽµ­¤Ç IPv6 ¥¢¥É¥ì¥¹¤È IPv4 ¥¢¥É¥ì¥¹¤ÎξÊý¤ò°·¤¨¤ë -¥¤¥ó¥¿¡¼¥Õ¥§¥¤¥¹¤Ë¤Ä¤¤¤Æ¤Ï¡¢ -.BR getaddrinfo (3) -¤ò»²¾È¤Î¤³¤È¡£ -.SH ¥Ð¥° -.B AF_INET6 -¤Ï IPv4 ¥¢¥É¥ì¥¹¤òǧ¼±¤·¤Ê¤¤¡£ -Âå¤ï¤ê¤Ë IPv4 ¥¢¥É¥ì¥¹¤ò¥Þ¥Ã¥Ô¥ó¥°¤·¤¿ IPv6 ¥¢¥É¥ì¥¹¤ò -.I src -¤ËÍ¿¤¨¤Ê¤±¤ì¤Ð¤Ê¤é¤Ê¤¤¡£ -.SH Îã -°Ê²¼¤Î¥×¥í¥°¥é¥à¤Ï -.BR inet_pton () -¤È -.BR inet_ntop (3) -¤Î»ÈÍÑÎã¤ò¼¨¤¹¤â¤Î¤Ç¤¢¤ë¡£ -¼Â¹Ô¤¹¤ë¤È°Ê²¼¤Î¤è¤¦¤Ë¤Ê¤ë¡£ +IPv6 アドレスの表現方法の詳細については RFC 2373 を参照のこと。 +.SH 返り値 +成功する (ネットワークアドレスが正常に変換される) と、 \fBinet_pton\fP() は 1 を返す。 \fIsrc\fP +が指定されたアドレスファミリーに対する 正しいネットワークアドレス表記でない場合には、 0 を返す。 \fIaf\fP +がサポートされているアドレスファミリーでない場合には、 \-1 を返し、 \fIerrno\fP に \fBEAFNOSUPPORT\fP を設定する。 +.SH 準拠 +POSIX.1\-2001. +.SH 注意 +\fBinet_aton\fP(3) や \fBinet_addr\fP(3) と異なり、 \fBinet_pton\fP() は IPv6 +アドレスに対応している。 一方で、 \fBinet_pton\fP() が受け付ける IPv4 アドレスはドット区切りの 10 進数表記だけである。 +これに対し、 \fBinet_aton\fP(3) や \fBinet_addr\fP(3) ではもっと一般的なドット区切りの数字表記 (16 進数や 8 +進数の形式や、 4 バイト全てを明示的に書かなくてもよい形式) が使用できる。 ドット区切りの数字表記で IPv6 アドレスと IPv4 +アドレスの両方を扱える インターフェイスについては、 \fBgetaddrinfo\fP(3) を参照のこと。 +.SH バグ +\fBAF_INET6\fP は IPv4 アドレスを認識しない。 代わりに IPv4 アドレスをマッピングした IPv6 アドレスを \fIsrc\fP +に与えなければならない。 +.SH 例 +以下のプログラムは \fBinet_pton\fP() と \fBinet_ntop\fP(3) の使用例を示すものである。 実行すると以下のようになる。 .in +4n .nf -.RB "$" " ./a.out i6 0:0:0:0:0:0:0:0" +$\fB ./a.out i6 0:0:0:0:0:0:0:0\fP :: -.RB "$" " ./a.out i6 1:0:0:0:0:0:0:8" +$\fB ./a.out i6 1:0:0:0:0:0:0:8\fP 1::8 -.RB "$" " ./a.out i6 0:0:0:0:0:FFFF:204.152.189.116" +$\fB ./a.out i6 0:0:0:0:0:FFFF:204.152.189.116\fP ::ffff:204.152.189.116 .fi .in -.SS ¥×¥í¥°¥é¥à¤Î¥½¡¼¥¹ +.SS プログラムのソース \& .nf #include @@ -197,7 +118,7 @@ main(int argc, char *argv[]) char str[INET6_ADDRSTRLEN]; if (argc != 3) { - fprintf(stderr, "Usage: %s {i4|i6|} string\\n", argv[0]); + fprintf(stderr, "Usage: %s {i4|i6|} string\en", argv[0]); exit(EXIT_FAILURE); } @@ -218,12 +139,14 @@ main(int argc, char *argv[]) exit(EXIT_FAILURE); } - printf("%s\\n", str); + printf("%s\en", str); exit(EXIT_SUCCESS); } .fi -.SH ´ØÏ¢¹àÌÜ -.BR getaddrinfo (3), -.BR inet (3), -.BR inet_ntop (3) +.SH 関連項目 +\fBgetaddrinfo\fP(3), \fBinet\fP(3), \fBinet_ntop\fP(3) +.SH この文書について +この man ページは Linux \fIman\-pages\fP プロジェクトのリリース 3.54 の一部 +である。プロジェクトの説明とバグ報告に関する情報は +http://www.kernel.org/doc/man\-pages/ に書かれている。