Skip to content
keepaaaPublic

About

TLDScan - 基于 Go + Wails 的全量顶级域名 (1438+ IANA TLD) 高并发极速探测桌面客户端

Resources

Stars

0 stars

Watchers

0 watching

Forks

Latest commit

 

History

4 Commits

Folders and files

Repository files navigation

TLDScan Logo

TLDScan

一款专用于“输入单字符/关键词,全量并发扫描全球 1,438+ 顶级域名后缀并提取站点标题、Web 服务器指纹、解析 IP 等元数据”的高性能跨平台桌面 GUI 工具。

Go Wails React TailwindCSS

TLDScan 运行界面截图


🌟 核心特色

  1. 开箱即用,零前置字典依赖
    • 通过 Go 语言 //go:embed 静态内嵌 IANA 官方最新发布的完整 1,438 个 TLD 列表。无需用户额外寻找字典或配置外部依赖。
  2. 两阶段漏斗型极速架构 (Funnel Pipeline)
    • Phase 1 (DNS 并发预筛):采用 miekg/dns 通过轻量级无状态 UDP 对公网权威 DNS 服务器池(Cloudflare, Google, Quad9, AliDNS 等)并发查询,单次毫秒级超时,极速剔除 85%~90%+ 的未注册或未解析死域名。
    • Phase 2 (HTTP 探活与元数据提取):对解析成功的存活域名优先请求 HTTPS,若证书或握手失败则智能回退 HTTP。流式读取响应头及前 64KB 数据提取 <title>,绝不浪费带宽下载完整网页或媒体文件。
  3. 中文与多语言字符集智能转码
    • 集成 golang.org/x/net/html/charset,自动检测 HTML meta 标签与 HTTP Header 中的字符集(UTF-8, GBK, GB2312, Big5 等),彻底告别乱码。
  4. 扫描历史持久化与免重复回看 (Scan History)
    • 每次扫描结果自动安全保存在本地(~/.config/tldscan/history/),随时可调阅历史快照,无需重复全网扫描。
    • 支持历史记录搜索、一键载入查看、历史数据再次筛选/排序、独立删除与一键清空。
  5. 现代化 OSINT 桌面交互 (React + Tailwind CSS)
    • 快捷词根:预置高价值单字母 (x, a, i, v 等) 和短词根 (ai, io, dev, app 等),点击即刻扫描。
    • 默认常用热门:默认优先扫描 75 个主流热门顶级域(也可切换全量 1438、国别与通用),兼顾极速与价值。
    • 实时漏斗看板:实时显示 QPS 扫描速率、DNS 过滤率、HTTP 响应分布与耗时。
    • 流式结果自适应大表:默认完美自适应窗口宽度,超长字段自动省略并提供悬停提示;支持鼠标拖拽自由调节列宽并持久化;支持多列升降序排序。
    • 日间 / 夜间双主题:支持 Dark / Light 模式一键切换,定制深色弹出菜单与协调视觉。
    • 多格式导出:支持一键导出为 CSV 表格、JSON 数据以及 TXT 纯文本清单。
    • 灵活并发调优:内置并发设置滑块(DNS Workers、HTTP Workers、单次超时、仅测 HTTPS 选项)。

🚀 快速启动与运行

1. 直接运行已编译的桌面程序

./build/bin/TLDScan

2. 本地开发模式 (Dev with Hot-Reload)

# 启动热重载开发服务器
wails dev -tags webkit2_41

3. 生产环境构建编译

# 编译可执行桌面二进制文件
wails build -tags webkit2_41

编译产物输出于:build/bin/TLDScan。


🛠️ 项目目录结构

TLDScan/
├── app.go                  # Wails 后端接口桥接(提供 StartScan、StopScan、SaveFile、History 接口)
├── main.go                 # Wails 桌面窗口与生命周期入口
├── wails.json              # Wails 项目配置(内置 build:tags webkit2_41)
├── pkg/
│   ├── history/            # 扫描历史持久化管理模块
│   │   ├── history.go      # JSON 文件存储、按时间倒序列表、详情获取与清除
│   │   └── history_test.go # 单元测试
│   ├── scanner/            # 核心扫描内核
│   │   ├── types.go        # 数据结构定义(ScanConfig, ResultItem, ScanProgress)
│   │   ├── dns.go          # miekg/dns 高并发无状态 DNS 预筛池
│   │   ├── http.go         # 轻量级 HTTP 探活、流式截断读取与字符集解码
│   │   ├── engine.go       # 两阶段漏斗调度管线
│   │   └── scanner_test.go # 单元测试
│   └── tld/                # 顶级域管理模块
│       ├── tld.go          # 内嵌 IANA 列表解析与分类(Popular, ccTLD, gTLD)
│       └── tlds.txt        # IANA 官方 1438 个顶级域名原始清单
├── frontend/               # 前端应用 (React 19 + TypeScript + Tailwind CSS)
│   ├── src/
│   │   ├── App.tsx         # 核心桌面主界面、历史记录面板与交互
│   │   ├── main.tsx        # React 挂载入口
│   │   └── style.css       # 全局深色模式主题与滚动条样式
│   └── wailsjs/            # Wails 自动生成的 TS 客户端绑定
└── build/
    └── bin/
        └── TLDScan         # 最终编译的独立桌面程序

About

TLDScan - 基于 Go + Wails 的全量顶级域名 (1438+ IANA TLD) 高并发极速探测桌面客户端

Resources

Stars

0 stars

Watchers

0 watching

Forks

Releases

Packages

Contributors

Languages