ハードコードされた IPv4 アドレスの使用

IPv4 の寿命により、ループバック アドレス (127.x.x.x)、整数定数 (INADDR_LOOPBACK など) のような、よく知られている多くの IPv4 アドレスがハードコーディングされるようになりました。 これらのアドレスをハードコーディングすると、既存のアプリケーションを変更して IPv6 をサポートする場合や、IP バージョンに依存しない新しいプログラムを作成する場合に、明らかな問題が発生します。

ベスト プラクティス

  • 最善のアプローチは、アドレスをハードコーディングしないことです。

回避するコード

  • ハードコーディングされたアドレスをコードで使用しないでください。

既存のコード ベースを IPv4 から IPv4 と IPv6 の相互運用性に変更するには

  1. Checkv4.exe ユーティリティを取得します。 Checkv4.exe ユーティリティは、Windows Vista 以降でリリースされた Microsoft Windows ソフトウェア開発キット (SDK) の一部としてインストールされます。
  2. コードに対して Checkv4.exe ユーティリティを実行します。 ファイルに対して Checkv4.exe ユーティリティを実行する方法の詳細については、「 Checkv4.exe ユーティリティの使用」のセクションを参照してください。
  3. Checkv4.exe ユーティリティは、INADDR_LOOPBACK などの IPv4 アドレスに共通の定義が存在することを警告するものです。 リテラル文字列を使用するコードをプロトコルバージョンに依存しないコードに変更します。
  4. 必要に応じて、コード ベースで他のリテラル文字列を検索します。

Checkv4.exe ユーティリティは、一般的なリテラル文字列の検出には役立ちますが、アプリケーションに固有の他の文字列がある場合があります。 コード ベースでリテラル文字列に関連する潜在的な問題が排除されていることを確認するために、徹底的な検索とテストを実行する必要があります。

Windows ソケット アプリケーションの IPv6 ガイド

IPv6 Winsock アプリケーションのデータ構造の変更

IPv6 Winsock アプリケーション用のデュアル スタック ソケット

IPv6 Winsock アプリケーションの関数呼び出し

IPv6 Winsock アプリケーションのユーザー インターフェイスに関する問題

IPv6 Winsock アプリケーションの基になるプロトコル