一、工具简介 下载地址 qq:15270506
本工具是基于Rust语言开发的命令行工具,主要用于检测指定网站的以下核心维度:
- DNS解析详情:完整输出解析到的所有IPv4/IPv6地址、解析耗时、IP数量统计
- 合规性检测:状态码、安全响应头、内容编码、核心HTML标签合规性
- 性能检测:DNS耗时、连接耗时、总请求耗时、下载速度、性能等级判定
- 内容保存:自动保存目标网站的HTML内容到本地文件
工具特点:跨平台(Windows/Linux/macOS)、高性能、日志完整、结果可视化。

二、环境要求
2.1 系统要求
- Windows 10/11 (64位)
- Linux (Ubuntu 18.04+/CentOS 7+)
- macOS 10.15+
2.2 依赖环境
必须安装Rust开发环境:
# 安装Rust(自动适配系统)
curl --proto '=https' --tlsv1.2 -sSf https://sh.rustup.rs | sh
# 验证安装
rustc --version
cargo --version
安装完成后需重启终端,确保cargo命令可全局调用。
三、使用指南
3.1 工具获取与编译
- 将工具源码解压到本地目录(如:D:\code\rust\test\zjweb1)
- 进入源码目录:
cd D:\code\rust\test\zjweb1
- 编译工具(发布模式,性能最优):
cargo build --release
- 编译成功后,可执行文件位于:target/release/zjweb1.exe(Windows)或 target/release/zjweb1(Linux/macOS)
3.2 基础使用命令
语法格式:
# 直接运行(开发模式)
cargo run --release -- <目标URL>
# 或使用编译后的可执行文件
./target/release/zjweb1 <目标URL> # Linux/macOS
target\release\zjweb1.exe <目标URL> # Windows
示例:检测百度官网
cargo run --release -- https://www.baidu.com/
3.3 命令参数说明
工具仅需传入一个必填参数:目标URL(必须包含http/https协议)
| 参数要求 |
合法示例 |
非法示例 |
说明 |
| 必须包含协议 |
https://www.baidu.com/ |
www.baidu.com |
仅支持http/https协议 |
| 域名有效 |
http://127.0.0.1:8080 |
http://invalid-domain.xyz |
域名需可解析,支持IP+端口形式 |
| 无特殊字符 |
https://rust-lang.org/ |
https://rust-lang.org/?key=值&test=1 |
复杂参数URL需用引号包裹:"https://xxx?key=值" |
四、检测结果解读
4.1 日志输出说明
工具运行时会输出彩色日志(不同级别):
- INFO:正常流程日志(如DNS解析开始/完成、请求发送/响应)
- WARN:警告信息(如缺少安全响应头、DNS解析到0个IP)
- ERROR:错误信息(如URL格式错误、请求失败)
4.2 核心报告模块解读
| 报告模块 |
子项 |
判定规则 |
正常标准 |
| DNS解析详情 |
解析域名 |
目标URL提取的域名 |
与输入URL域名一致 |
| 解析耗时 |
从发起解析到获取IP的总耗时 |
<100ms为优秀 |
| IP数量 |
IPv4/IPv6数量统计 |
至少1个有效IP |
| IP列表 |
所有解析到的IP地址 |
无重复、格式合法 |
| 合规性评价 |
状态码合规 |
HTTP状态码是否为2xx |
200 OK为最优 |
| 安全响应头合规 |
是否包含X-Content-Type-Options/X-Frame-Options |
两个头都存在为合规 |
| 内容编码合规 |
网页内容是否为UTF-8编码 |
无编码错误、UTF-8格式 |
| 核心标签存在 |
是否包含html/head/body标签 |
三个标签都存在 |
| 性能评价 |
连接建立耗时 |
TCP+TLS握手总耗时 |
<300ms为优秀 |
| 总请求耗时 |
DNS解析到内容读取完成总耗时 |
<500ms为优秀 |
| 下载速度 |
内容大小(KB) / 总耗时(秒) |
>50KB/s为优秀 |
| 性能等级 |
基于总请求耗时判定 |
Excellent/Normal/Slow/Abnormal |
4.3 最终结论说明
- ✅ 网站合规且性能正常:合规性全通过、性能等级非异常、DNS解析有有效IP
- ❌ 存在合规性/性能/DNS问题:任意一项不满足正常标准
4.4 本地文件输出
工具会自动保存以下文件到运行目录:
五、常见问题解决
5.1 编译错误
- 依赖未找到:执行 cargo update 更新依赖后重新编译
- DNS模块错误:确认Cargo.toml中包含 dns-lookup = "3.0"
- 所有权相关错误:确保DnsDetail结构体实现Clone trait(代码已内置)
5.2 运行错误
| 错误现象 |
原因 |
解决方法 |
| URL格式非法 |
缺少http/https协议或域名无效 |
补充协议,如:https://www.baidu.com |
| DNS解析失败 |
网络问题/域名不存在/防火墙拦截 |
检查网络、更换DNS服务器(如8.8.8.8) |
| 请求超时 |
目标网站不可达/超时时间过短 |
修改代码中timeout为20秒(默认10秒) |
| 内容读取失败 |
网站返回非UTF-8内容/反爬机制 |
修改User-Agent为真实浏览器标识 |
5.3 性能优化建议
- 使用--release模式编译(性能提升50%+)
- 关闭不必要的日志:将日志级别改为Warn(修改init_logger函数)
- 批量检测:可修改代码支持从文件读取多个URL(需二次开发)
六、二次开发指南
6.1 核心扩展方向
- 批量检测:读取txt文件中的URL列表,循环调用fetch_and_evaluate函数
- 报告导出:使用serde_json将评价结果导出为JSON/CSV文件
- IP归属地解析:集成ip2location库,添加IP地理信息展示
- 合规性扩展:添加违法关键词检测、HTTPS证书有效期检测
6.2 核心函数说明
| 函数名 |
功能 |
修改建议 |
| get_dns_detail |
DNS解析与详情统计 |
可添加DNS超时控制、反向解析 |
| generate_evaluation |
生成综合评价报告 |
可自定义性能等级阈值、合规规则 |
| print_evaluation_report |
打印格式化报告 |
可修改输出格式、添加颜色标识 |