このプロジェクトについて

# IPv6 Web Resource Checker (webres6) ウェブページやアプリケーションのIPv6専用環境での対応状況を確認するためのコマンドラインツールおよびウェブサービスです。Seleniumを使用してウェブサイトを読み込み、パフォーマンスログからホスト名とIPアドレスを抽出し、各リソースがIPv6専用ネットワーク経由でアクセス可能かどうかを判定します。 ## 機能 - Selenium (Chromium) を使用してウェブページをクロールし、パフォーマンスログからすべてのホスト名とIPアドレスを抽出 - ネイティブIPv6アドレスの使用状況に基づいてリソースをIPv6対応として分類 - カスタムのUnboundベースリゾルバ (dnsprobe) を使用してIPv6専用DNS解決をテスト - 検出されたIPアドレスに対してWHOIS検索を実行し、インフラストラクチャを分析 - IPv6専用対応スコアを計算し、結果のスコアボードを維持 - カスタムのSelenium/Python計測コードをサポート - APIサーバー側でNAT64変換を処理 - REST API経由で構造化レポートをJSONとしてエクスポート - 結果をValkeyまたはフラットファイルにキャッシュおよびアーカイブ - 公開サフィックスリストを使用してドメイン名を分割 ## コンポーネント - **APIサーバー** (`webres6-api`) — Selenium、dnsprobe、RESTエンドポイントを備えたFlaskベースのサーバー - **CLIクライアント** — APIに問い合わせて結果を表示するPythonコマンドラインツール - **Webアプリ** — APIから提供される、またはスタンドアロンビューアとして動作するjQueryベースのフロントエンド - **MCPサーバー** — AIアシスタント向けのModel Context Protocol統合 ## セットアップ ### 要件 - APIサーバーにはPython 3.14以上 - CLIクライアントにはPython 3.11以上 - Selenium用にNAT64をサポートするデュアルスタックまたはIPv6専用ホスト - DNSプロービング用のPythonバインディング付きlibunbound ### インストール uv経由でのCLI: ``` uv tool install --from 'git+https://github.com/SAP/webres6#subdirectory=cli' webres6-cli ``` Docker Composeセットアップでは、API、NGINX、Seleniumのコンテナをビルドします。Kubernetesへのデプロイは `helm/` ディレクトリ内のHelmチャートで利用可能です。 ## 使用方法 ### CLI ``` webres6 [options] URL ``` オプションには、スクリーンショットのキャプチャ、JSONエクスポート、タイムアウト制御、ASN表示、サーバーへのスコア送信が含まれます。 ### Webアプリ 入力フィールドにURLを入力し、**Analyze** をクリックします。結果と最近のスコアボードが下に表示されます。カスタムCSSと保存されたレポートファイルをブラウザウィンドウにドロップしてレンダリングすることもできます。 ### デモ 公開インスタンスは [webres6.dev.sap](https://webres6.dev.sap) で利用可能です。 ## 制限事項 - Seleniumを実行するホストにデュアルスタック接続が必要 (またはNAT64付きのIPv6専用) - IPv4専用ホストでは、すべてのリソースが利用不可として報告される - ChromiumのHappy Eyeballsは、応答が遅いIPv6ホストに対してIPv4を優先する場合がある - 認証、Cookie同意の処理、JavaScript遅延のサポートはなし (カスタム計測コードで拡張可能) - ボットトラフィックの偽装は行わない ## ライセンス Copyright 2025 SAP SE or an SAP affiliate company. Apache License 2.0の下でライセンスされています。詳細は [LICENSE](LICENSE) および [REUSE](https://api.reuse.software/info/github.com/SAP/webres6) を参照してください。