📌 项目地址:soxoj/maigret | ⭐ 29,289 颗星 | 🔧 Python | 📜 未标注
一句话说清楚
输入一个用户名,Maigret 会去 3000+ 网站查账号是否存在,默认只跑流量排名前 500 的。加 -a 扫全部。它不依赖 API 密钥,只靠 HTTP 请求判断页面返回的内容。安装需要 Python 3.10+:
pip install maigret
maigret YOUR_USERNAME
实测结果:23 个匹配,5 个是假阳性
我拿自己用了七年的昵称测。默认模式跑了 11 分钟,返回 23 个结果。
其中 18 个是直接匹配——Maigret 在那些网站的用户页面检测到用户名存在。另外 5 个是递归发现:它在某个匹配页面的简介或社交链接里找到其他平台用户名,自动加进搜索队列。这 5 个里有两个是我早已忘记的老论坛账号,确实有用。
但后面我一个个点开页面手动核对,发现有 5 个网站返回 HTTP 200,页面实际显示“该用户不存在”或“账号已注销”。Maigret 的判断逻辑是状态码 + 关键词匹配,有些废弃页面被服务器保留空壳,它判定为存在。
每个匹配都要自己点开看,不能全信。
信息提取方面,它抓取页面里的公开链接,但遇到相对路径(比如 /user/xxx)没有补全域名,我拿到一串没用的碎片。还有一次,它把评论区里另一个用户引用的昵称当成当前账号,写进了报告。
提取的信息当线索用,别当证据。
AI 分析功能(README 里明确写了是 demo)我试了下。按文档配置了 OpenAI 兼容 API,输出是一段侦探风格摘要,但漏了我测试手记里写的一个 Twitter 链接,还自己编了一句“曾在某互联网公司工作”。
现阶段别拿这个结论做决策。
什么情况下值得用
- 找回自己遗弃的账号。用常用昵称扫一遍,看哪些还能登录。我通过递归搜索找回了一个 2016 年注册的技术论坛账号,密码早忘了,但确认了还能走找回流程。
- 渗透测试前置信息收集。验证目标用户名在哪些公开平台注册过,缩小社工范围。注意点是假阳性率高,需要人工复核。
- 验证两个用户名有没有公开关联。递归搜索发现 A 的页面里引用了 B 的账号,说明这两人在同一个平台有过互动(或 A 的简介里直接挂了 B 的链接)。这个靠手动搜很难全局发现。
只能拿到 公开网页 的信息。突破不了登录墙,拿不到私信、邮箱、手机号。
参数和用法(全部来自 README)
- 默认跑前 500 个高流量网站。
-a:扫全部 3000+ 站点,耗时约 25–40 分钟。--tags:按类别或国家过滤。例如--tags social只扫社交类网站,--tags cn只扫中国相关站点。具体标签名请参考sites.md。--tor:走 Tor 网络,可绕过部分被墙站点。速度慢 3–5 倍,且 README 明确写“部分绕过”,成功率不高。- 支持 Web 界面启动,启动方式见文档 maigret.readthedocs.io。
- 自动更新站点数据库:每次运行会从 GitHub 拉取最新站点配置(24 小时内只拉一次),所以不用频繁升级 pip 包。内网用户需要自建镜像或固定数据库文件。
- 离线时回退到内置数据库,不会报错,但站点规则是上次打包时的版本,可能较旧。
与同类工具的区别
另一个常用工具是 Sherlock(25k 星)。Sherlock 只检查用户名是否存在,不递归,不提取页面信息。Maigret 多了信息提取和递归搜索,但代价是速度慢:Sherlock 扫 400+ 站点约 3 分钟,Maigret 默认 500 站点要 8–12 分钟。选哪个取决于你要深度还是速度。
总结
Maigret 的核心价值不是给你一份 100% 准确的结果,而是帮你快速缩小搜索范围,找到那些你根本想不到的旧账号。剩下的交叉验证和判断,需要人来做。