プログラムによるIPv6サポートとは? わかりやすく解説

Weblio 辞書 > 辞書・百科事典 > ウィキペディア小見出し辞書 > プログラムによるIPv6サポートの意味・解説 

プログラムによるIPv6サポート

出典: フリー百科事典『ウィキペディア(Wikipedia)』 (2022/04/02 14:26 UTC 版)

IPv6」の記事における「プログラムによるIPv6サポート」の解説

IPv6アプリケーション利用するためのプログラムは、IPv4でのプログラム比べて大きな違いがあるものではない。 ネットワーク利用するプログラムではソケット利用することが多く通常のIPv4プログラミングsocket作成するときには s = socket(AF_INET, SOCK_STREAM, 0); のように、アドレスファミリ部をIPv4固定指定することが多いが、一つサイトIPv4IPv6の両プロトコル対応している場合や、どちらに対応しているのか事前にわからないことを考慮すると、DNS一つの名前を検索した後、列挙され複数プロトコルアドレスに対して順番connect試み必要があるアドレス検索する際は、IPv4のみを前提としているgethostbyname() や、socket同様にアドレスファミリ固定であるgethostbyname2() などではなく、getaddrinfo()利用する。 以上をまとめると、典型的なソケット作成するCのコードは以下のようになるstruct addrinfo hints, *res, *res0;int error, s;memset(&hints, 0, sizeof(hints));hints.ai_family = PF_UNSPEC;hints.ai_socktype = SOCK_STREAM;/* TCP場合 */if ((error = getaddrinfo("ホスト名", "サービス名", &hints, &res0)) != 0)return -1;s = -1;for (res = res0; res != NULL; res = res->ai_next) {if ((s = socket(res->ai_family, res->ai_socktype, res->ai_protocol)) == -1)continue;if (connect(s, res->ai_addr, res->ai_addrlen) == 0)break;close(s);s = -1;}freeaddrinfo(res0);if (s == -1) {/* Could not connect */} else {/* Success */} この手法はIPv6のみならず別のIPプロトコル登場した場合にも有効な手法で、プロトコル独立プログラミングなどと呼ばれる。 なお、ここで示した方法は、getaddrinfo() によって返されるアドレスファミリの順に接続試みるので、AAAAレコードより先にAレコード返すようなgetaddrinfo() では、IPv6による通信が行われない可能性もある。

※この「プログラムによるIPv6サポート」の解説は、「IPv6」の解説の一部です。
「プログラムによるIPv6サポート」を含む「IPv6」の記事については、「IPv6」の概要を参照ください。

ウィキペディア小見出し辞書の「プログラムによるIPv6サポート」の項目はプログラムで機械的に意味や本文を生成しているため、不適切な項目が含まれていることもあります。ご了承くださいませ。 お問い合わせ



英和和英テキスト翻訳>> Weblio翻訳
英語⇒日本語日本語⇒英語
  

辞書ショートカット

すべての辞書の索引

「プログラムによるIPv6サポート」の関連用語

1
4% |||||

プログラムによるIPv6サポートのお隣キーワード
検索ランキング

   

英語⇒日本語
日本語⇒英語
   



プログラムによるIPv6サポートのページの著作権
Weblio 辞書 情報提供元は 参加元一覧 にて確認できます。

   
ウィキペディアウィキペディア
Text is available under GNU Free Documentation License (GFDL).
Weblio辞書に掲載されている「ウィキペディア小見出し辞書」の記事は、WikipediaのIPv6 (改訂履歴)の記事を複製、再配布したものにあたり、GNU Free Documentation Licenseというライセンスの下で提供されています。

©2025 GRAS Group, Inc.RSS