Whois查询工具 - 基于服务机构RDAP的Whois查询工具
编辑
23
2025-09-25
WHOIS/RDAP 域名查询工具
一个基于 Next.js 与 TypeScript 构建的现代化域名信息查询应用,支持 WHOIS 与 RDAP 双协议,提供结构化数据解析、结果导出、主题切换等功能,适合开发者、企业与研究场景的快速集成与使用。
1. 项目概述
- 支持多数据源:RDAP(注册局/注册商)、传统 WHOIS、自动选择
- 精准解析:自动将原始查询结果解析为结构化字段(域名、注册商、注册/到期时间、NS 等)
- 体验完善:本地缓存、结果导出与分享、亮/暗主题、PWA 支持
- 技术栈:Next.js 15、React 19、TypeScript、Tailwind CSS
2. 安装指南
环境要求
- Git(用于克隆仓库)
- Node.js ≥ 18.17(建议使用最新 LTS 版本)
- 包管理器:npm(也可使用 yarn/pnpm/bun)
安装与运行
- 克隆并进入项目目录
git clone https://github.com/fishyu-yu/whois.git
cd whois
- 安装依赖(任选其一)
# 使用 npm
npm install
# 使用 pnpm
pnpm install
# 使用 yarn
yarn install
# 使用 bun
bun install
- 开发模式(默认端口 3000)
npm run dev
# 访问 http://localhost:3000
- 生产构建与启动
npm run build
npm start
# 访问 http://localhost:3000
可选配置
- 端口变更:开发模式下可使用 PORT 环境变量或 -p 参数指定端口(示例:Windows PowerShell)
$env:PORT=3001; npm run dev
# 或
npm run dev -- -p 3001
- 包管理器替换:如使用 pnpm/yarn/bun,请将上述命令中的 npm 替换为对应工具。
3. 使用说明
前端 UI
- 启动服务后打开首页,输入域名(支持 IDN)
- 在「查询来源」中选择数据源(默认自动选择)
- 点击「查询」查看结构化结果与原始数据
- 支持导出 JSON、分享结果
API 调用
- 端点:POST /api/whois
- 请求体:
{
"query": "example.com",
"type": "domain",
"dataSource": "auto | rdap | whois | registrar | registry"
}
- 响应示例(部分):
{
"success": true,
"data": {
"query": "example.com",
"type": "domain",
"dataSource": "rdap-registry",
"rdapSource": "registry",
"result": { "raw": "...", "parsed": { "domain_name": "EXAMPLE.COM" } }
}
}
4. 配置选项
- 查询来源 dataSource(前端选择或 API 参数)
- auto:自动选择最佳数据源(优先 RDAP,失败回退 WHOIS)
- rdap:强制使用 RDAP(结构化 JSON,优先注册商,其次注册局)
- whois:强制使用传统 WHOIS
- registrar:偏向注册商数据(若不可用自动回退)
- registry:偏向注册局数据(若不可用自动回退)
- 查询类型 type:当前仅支持 "domain"
- RDAP 服务器扩展:可在 src/lib/rdap-client.ts 中扩展 RDAP_SERVERS 映射
- ccTLD 数据库扩展:可在 src/lib/cctld-database.ts 中维护各国家/地区的注册局与 WHOIS 服务器
- PWA 与静态资源:public/manifest.json、public/sw.js;构建与缓存头在 next.config.ts 中配置
5. 贡献指南
我们欢迎问题反馈与特性贡献:
- 提交 Issue:描述问题、复现步骤与期望行为
- 开发流程:
- Fork 仓库并创建特性分支(例如 feature/xxx)
- 运行与自测:npm run dev / npm run build / npm run lint
- 提交 Pull Request,说明变更内容与影响范围
- 代码风格:遵循 TypeScript 与 ESLint 规则;尽量保持模块化与清晰职责
6. 许可证信息
本项目使用 AGPL-3.0-only 许可证:
- 若以网络服务形式提供本项目或其修改版,需向使用者开放对应源代码
- 分发与修改需在同一许可证下发布并保留版权声明与许可文本
如需商业合作或双许可方案,请联系维护者以讨论合规路径。
Github地址
原文地址
- 0
- 0
-
分享