这个项目能做什么
# IPv6 Web Resource Checker (webres6)
一款用于检查网页或应用程序纯 IPv6 就绪情况的命令行工具和 Web 服务。它使用 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`)——基于 Flask 的服务器,集成 Selenium、dnsprobe 和 REST 端点
- **CLI 客户端**——用于查询 API 并显示结果的 Python 命令行工具
- **Web 应用**——由 API 提供服务的基于 jQuery 的前端,也可作为独立查看器使用
- **MCP 服务器**——面向 AI 助手的 Model Context Protocol 集成
## 安装配置
### 环境要求
- API 服务器需要 Python 3.14+
- CLI 客户端需要 Python 3.11+
- 运行 Selenium 的主机需具备双栈或纯 IPv6 并支持 NAT64
- 用于 DNS 探测的 libunbound 及其 Python 绑定
### 安装
通过 uv 安装 CLI:
```
uv tool install --from 'git+https://github.com/SAP/webres6#subdirectory=cli' webres6-cli
```
Docker Compose 配置会构建 API、NGINX 和 Selenium 容器。Kubernetes 部署可通过 `helm/` 目录中的 Helm chart 实现。
## 使用方法
### CLI
```
webres6 [options] URL
```
选项包括截图捕获、JSON 导出、超时控制、ASN 显示以及向服务器提交评分。
### Web 应用
在输入框中输入 URL 并点击 **Analyze**。结果和最近的记分板会显示在下方。自定义 CSS 和已保存的报告文件可拖放到浏览器窗口中进行渲染。
### 演示
公共实例可在 [webres6.dev.sap](https://webres6.dev.sap) 访问。
## 局限性
- 运行 Selenium 的主机需要双栈连接(或纯 IPv6 加 NAT64)
- 纯 IPv4 主机将报告所有资源均不可用
- Chromium 的 Happy Eyeballs 可能会对响应缓慢的 IPv6 主机优先选择 IPv4
- 不支持身份验证、Cookie 同意处理或 JavaScript 延迟(可通过自定义插桩扩展)
- 不会伪装机器人流量
## 许可
Copyright 2025 SAP SE 或 SAP 关联公司。基于 Apache License 2.0 许可。详情请参阅 [LICENSE](LICENSE) 和 [REUSE](https://api.reuse.software/info/github.com/SAP/webres6)。
评论
0 评分人数达到10人后显示
登录后参与讨论。