📌 项目地址:sherlock-project/sherlock | ⭐ 100,504 颗星 | 🔧 Python
它查的是什么
给 Sherlock 一个用户名,它会同时去几百个社交网站查这个名字有没有被注册,把命中的平台和链接列出来,可以存成 CSV 或 JSON。
这个能力在几种情况下用得上:查自己这些年在外网留了多少账号、做安全自查,或者 OSINT 调查的第一轮筛查。Sherlock 是这个领域最有名的 Python 工具,star 数已经超过十万,这个量级在纯 Python 项目里非常少见。
安装和基本用法
推荐用 pipx 装,不污染环境:
pipx install sherlock-project
最简单的用法,直接跟一个用户名:
sherlock user123
结果默认存到以用户名命名的文本文件里。几个常用参数:
# 只显示找到的站点,安静很多
sherlock --print-found user123
# 指定输出目录
sherlock --output /tmp/results user123
# 一次查多个用户名
sherlock user1 user2 user3
不想装也可以从源码跑,或者用 Docker:
git clone --depth 1 https://github.com/sherlock-project/sherlock.git
cd sherlock
python3 -m sherlock user123
docker run -it --rm sherlock/sherlock user123
结果怎么读:这是最大的坑
新手最容易在这里翻车。Sherlock 的判断标准是“这个 URL 上的页面存在”,不是“这是同一个人”。
我拿 mike 这种常见用户名试过,几乎每个平台都命中,因为不同的人在各平台注册了同一个名字。所以拿到结果先别下结论,要拿头像、注册时间、简介、发帖内容这些线索交叉比对,确认是不是同一个人。
还有一类误报来自站点本身:有的平台对不存在的用户名也返回 200,有的套一层登录墙,判断就会失准。重要结论多验证几个来源。
用之前该知道的三件事
合法使用是底线。 Sherlock 只查公开信息,不碰任何破解,但用它调查别人、拼人物画像,可能触及你所在地的隐私法规。项目文档也明确要求只用于授权的、合法的目的。
你的 IP 会暴露在几百个站点面前。 一次查询等于短时间内向数百个网站发请求,这些请求都会留记录。注意网络环境和查询频率,别拿日常 IP 乱扫。
站点列表会过期。 社交平台改版、上反爬机制,都会让部分站点暂时失效。某个平台没查到,不代表那个平台没注册过。
和同类工具怎么选
- Maigret:可以理解为 Sherlock 的增强版后代,站点库扩到 3000+,能抓页面信息辅助判断是不是同一个人,还能出 PDF 报告。Sherlock 覆盖不够用时上它。
- WhatsMyName:网页版,浏览器打开就能查,不用装任何东西。代价是定制能力和批量导出弱一些。
Sherlock 的位置很清晰:命令行、速度快、社区持续维护站点列表。作为第一轮筛查,它够用,也最省事。许可证是 MIT,随便用。