Aliens_eye:840+ 平台用户名扫描工具
Aliens_eye 是一个 Python 写的 OSINT 用户名扫描工具,输入一个用户名,并发查询 840 多个平台上的注册情况,输出带昵称、简介和头像的结果报告,支持跨站关联、递归扩展与多种格式导出。本文讲清它的检测原理、安装方式、关键参数,并整理已修复的误报问题与同类工具的取舍。
输入一个用户名,Aliens_eye 会把它拼进 840 多个平台的账号地址里并发发起请求,逐一判断这个用户名在哪些站点已经被占用。跑完给你一份结果表,命中的站点、主页链接、昵称、简介和头像都会列出来,可以导出成 JSON、CSV、HTML、Markdown、PDF 或者图格式的数据。
Aliens_eye 是一个 Python 写的 OSINT 用户名扫描器,输入一个用户名,输出它在 840 多个平台上的注册情况、主页资料与跨站关联结果。
项目由 arxhr007 维护,采用 MIT 许可证,主要语言是 Python(占 99.9%)。仓库地址 https://github.com/arxhr007/Aliens_eye ,当前 4139 star、479 fork、22 watcher,开放 Issue 2 条,最近一次提交在 2026 年 9 月。命令行入口叫 aliens_eye,已经发布到 PyPI。

多数同类脚本判断账号是否存在,靠的是 HTTP 状态码,返回 200 就算找到。站点加上反爬、统一返回一个访客页或者登录页,这种做法就会把不存在的人报成存在。Aliens_eye 把每个响应转换成 30 维特征向量,涵盖状态码分桶、用户名出现的位置(路径、标题、meta、canonical)、错误页与资料页关键词、DOM 结构、og:type 与 JSON-LD Person 这类结构化数据、响应耗时、重定向次数,以及从以往扫描里学到的站点指纹。
两个判定器对这份特征投票。启发式引擎做加权打分,逻辑回归模型输出概率,两者按 0.9 乘模型分加 0.1 乘启发式分混合,高于 0.620 判为 Found,低于 0.360 判为 Not Found,中间落在 Maybe 并附上置信度百分比。模型文件缺失或损坏时,扫描器会退回只用启发式。阈值与权重都写在随包分发的模型里。
它解决的是什么问题
用户名是公开信息里成本最低的一条线索。一个人注册账号习惯用同一个 ID,这个 ID 在哪些平台出现过,往往能拼出一张他本人未必意识到的曝光地图。
没有工具的时候,这件事只能手工做。挑一个平台,把用户名拼进主页地址,打开看返回什么,再换下一个。几十个站点还能忍,几百个就不现实了。很多站点对未登录访问的处理方式又不一样,有的返回 200 但内容是登录引导页,有的直接跳首页,人眼翻多了也会判断失误。耗时之外,漏判和误判都是常态。
Aliens_eye 把这一步自动化,顺带做了两件手工更做不了的事。一是并发,840 多个平台在一轮扫描里跑完;二是把结果结构化,命中项的昵称、简介、头像被抽取出来存进报告,后续可以用脚本处理,也可以直接作为证据留档。
典型使用场景
- 做个人暴露面梳理的人。想确认自己的常用用户名在哪些平台注册过,哪些是早年注册、现在忘了的,然后逐个清理或者改 ID。加上
--correlate还能看到哪些账号看起来属于同一个人。 - 在授权范围内做信息收集的安全从业者。拿到一个用户名,先跑一轮广撒网,再从命中结果里挑几个值得深挖的站点。
--recurse-depth 1会顺着已命中主页里的链接用户名继续扫。 - 需要出报告的人。用
--format pdf生成带嵌入头像的调查员报告,或者用--format gexf,mermaid,maltego导出关系图,导入 Gephi、Maltego 或 Mermaid 继续看。 - 需要长期盯变化的人。
--watch 6h --notify <url>按间隔重扫,发现新增或消失的账号时向 webhook 推一条通知。
几个常见疑问
扫描中文用户名会出问题吗?
GitHub 上有一条已解决的 Issue 记录了这个问题。早期版本处理非 ASCII 用户名时没有做 URL 编码,同时会把站点的反爬访客页和登录页误判成命中,导致中文或 CJK 用户名的扫描结果不可信。该条记录的状态是已解决。
为什么会出现账号不存在却报 Found?
同样有一条已解决的 Issue:用户发现 YouTube、Instagram、Pinterest 等站点返回「找到用户」,随后在网页上打开却显示用户不存在。这是启发式判定被站点统一返回页欺骗的典型形态,后续版本靠特征向量与模型混合来压制这类误报。
装完之后运行报找不到 /usr/bin/sites.json 是什么原因?
有一条已解决的 Issue 记录了这样的报错:FileNotFoundError: [Errno 2] No such file or directory: '/usr/bin/sites.json',出现在 aliens_eye.py 第 31 行的 open("/usr/bin/sites.json")。这是把站点表写成了硬编码的绝对路径,换个安装方式就找不到文件。该问题状态为已解决,当前版本用 pip 安装不会再踩到。
主要功能
- 840+ 平台异步扫描。一条命令跑完整个站点表,站点列表随包分发,不需要自己维护。
- ML 与启发式混合检测。响应转成 30 维特征,启发式打分与逻辑回归模型按权重混合,输出 Found / Maybe / Not Found 三档加置信度。想只用规则,加
--no-ml。 - 资料抽取。命中站点会尝试抓取显示名、简介和头像,来源包括 OpenGraph、JSON-LD 以及各站点自己的 CSS 选择器。
- 跨站关联。加
--correlate,按头像哈希、简介文本、共享链接和姓名把疑似同一个人的账号聚成一类。头像比对需要装aliens-eye[correlate],其中含 Pillow。 - 递归扩展。
--recurse-depth N会从已命中账号的简介里找出其他用户名,再扫一轮,深度由 N 控制。 - 域名检查。
--domains检查<username>.{com,io,net,…}这类域名是否已注册且可访问。 - 监视与通知。
--watch 6h --notify <url>定时重扫,结果有变化时向指定 webhook 推送。 - 报告导出。支持 JSON、CSV、HTML、Markdown、PDF 和图格式(GEXF、Mermaid、Maltego CSV),一次全出用
--format all。
仓库还提供了几项偏工程化的能力。--resume scan.jsonl 让中断的扫描从检查点续跑;--proxy socks5://127.0.0.1:1080 或 --tor 可以把请求走代理;aliens_eye selfcheck 输出各站点的 precision、recall、F1 和 FPR;aliens_eye corpus record 录一份冻结的响应语料,之后 selfcheck --corpus 就能可复现地重跑同一组指标;aliens_eye serve 起一个 MCP 服务,把扫描能力暴露给 LLM 智能体。
站点表可以自己扩。往 ./sites.d/ 丢一个形如 { "site_name": "https://site/{}" } 的 JSON 文件就会被自动合并,--sites-dir DIR 可以再指定一个位置。
安装与最短示例
pip install aliens-eye
可选组件按需要装,它们各自带额外依赖。
pip install "aliens-eye[browser]" # Playwright,用于 JS 重的页面
python -m playwright install chromium
pip install "aliens-eye[train]" # scikit-learn,用于重训 ML 模型
pip install "aliens-eye[correlate]" # Pillow,用于 --correlate 的头像比对
pip install "aliens-eye[pdf]" # reportlab,用于导出 PDF
pip install "aliens-eye[tui]" # textual,用于交互式 TUI 浏览器
pip install "aliens-eye[serve]" # mcp,用于 MCP 服务端
Docker 方式是构建后直接跑,源码安装是克隆仓库再 pip install -e .。
docker build -t aliens-eye .
docker run --rm -it aliens-eye username
git clone https://github.com/arxhr007/Aliens_eye.git
cd Aliens_eye
pip install -e .
最短能跑通的一条命令就是给一个用户名,不带参数运行会进入交互式提问。
aliens_eye username
想一次看多个用户,直接并排写:aliens_eye username1 username2。
关键参数
-l advanced:扫描等级,advanced 会带上用户名前后缀的变体。--profile quick:非交互式预设,可选 quick、full、aggressive。--site github,reddit,gitlab:只扫指定站点;--exclude-site反过来排除;--no-nsfw跳过 NSFW 站点。--format all --output results:一次导出全部格式到指定目录,默认目录是results/。--plain:去掉颜色与进度动画,输出适合脚本和 CI 解析。-r results/username_advanced_20260611_120000.json:读取上一次的扫描结果,不重新发请求。--no-ml:只用启发式规则,不加载模型。--proxy socks5://127.0.0.1:1080与--tor:前者接任意 HTTP 或 SOCKS 代理,后者需要本机跑着 Tor 守护进程。
结果在哪里看
扫描结果直接打在终端里,用 rich 渲染的表格会按状态排序,最后给一个汇总面板。文件形式的报告落在 --output 指定的目录,不指定就是 results/,文件名带用户名、扫描等级和时间戳,形如 results/username_advanced_20260611_120000.json。
事后回看用 aliens_eye -r 加报告路径,不用重跑。对比两次报告用 aliens_eye diff results/old.json results/new.json。检测质量报告用 aliens_eye selfcheck --negatives 2 --report json 生成,需要可复现的评测就先 aliens_eye corpus record --out corpus/v1 --split all --negatives 4 录语料。
实际使用中的坑
- 非 ASCII 用户名误报。中文或 CJK 用户名没有做 URL 编码,站点反爬访客页会被当成命中。当前状态:已解决。
- 账号不存在的假阳性。YouTube、Instagram、Pinterest 等站点报告找到用户,实际打开显示不存在。当前状态:已解决。
- 硬编码绝对路径导致启动失败。报
FileNotFoundError,路径写死成/usr/bin/sites.json。当前状态:已解决。
这三条都来自仓库的 Issue 列表,且都已经关掉,开放中的 Issue 还有 2 条。从目录结构能看出来的另一层风险是站点表的维护成本。840 多个平台的判定规则和指纹需要跟着站点改版持续更新,仓库从 v2.2.2 到 v2.5.0 连续发了五个版本,最近一次在 2026 年 9 月,节奏不算慢。这类工具一旦停更,误报会随站点改版逐渐变多。这一段是从提交记录推断的,不是实测结论。
同类项目对比
| 项目 | 适合谁 | 部署方式 | 主要限制 | 什么情况下选它更合适 | 项目地址 |
|---|---|---|---|---|---|
| Aliens_eye | 想用一个用户名一次性摸清跨平台账号分布,并且需要可复现评测的人 | pip install aliens-eye,或 Docker,或克隆源码后 pip install -e . | 只做用户名这一个维度,不做站点内爬取;检测质量依赖随包模型与站点表,要跟着版本更新 | 需要 ML 混合判定、跨站关联、递归扩展,或者要留下带指标的自检报告 | Aliens_eye |
| Lucksi/Mr.Holmes | 需要一套覆盖面更宽的 OSINT 工具集合的人 | 仓库没有说明 | 未逐一核实 | 想在一个仓库里同时拿到多种信息收集模块,覆盖面比只做用户名扫描更宽 | Mr.Holmes |
| s0md3v/Photon | 要从某个站点开始抓链接、抓数据的人 | 仓库没有说明 | 未逐一核实 | 目标是把某个站点页面上能抓的东西抓下来 | Photon |
取舍上有个明确的判断点。任务的重点如果是从一个站点往外爬,Photon 这类抓取器更合适,Aliens_eye 不做站点内爬取,给不了页面级别的内容。如果需要的是一整套信息收集工具,Mr.Holmes 覆盖的面更宽。反过来说,只看用户名跨平台存在性这一件事,Aliens_eye 的 ML 混合判定加上自检、语料评测这套流程,另外两个项目没有。
合规边界
Aliens_eye 做的是对第三方站点发起批量请求并记录目标账号的存在情况,属于扫描与信息收集类工具的范畴。它只能用于你自己拥有或已经获得明确授权的目标。未经授权对一个真实的人做跨平台账号排查,在国内可能触及个人信息保护相关法律的边界,在境外也可能违反对应司法辖区的隐私与数据法规。
实际使用上还有平台风险。840 多个平台的批量请求会触发风控,轻则返回假的访客页让结果失真,重则把出口 IP 拉黑,甚至牵连到你的账号。项目提供了 --proxy 和 --tor,这两个参数是流量隔离的工程手段,不能当成规避授权的工具。授权范围内的自查与安全评估才用得上它。
适合谁用这件事可以收拢成一句判断。个人想梳理自己的账号暴露面、安全团队在拿到书面授权的项目里做用户名维度的信息收集、需要一份带指标和图片的留档报告,这三类情况下 Aliens_eye 是对的选型。想爬某个网站的内容、想做手机号或位置反查、想在没有授权的前提下排查别人,它都帮不上忙,也不该往那个方向用。
内容核验说明
工具的参数、依赖和评测命令列得比较全,判定阈值、模型文件缺失时静默退回启发式这类容易踩坑的细节也写清了,省去翻 README 和源码的时间,适合在授权范围内做账号核查的人当速查表用。文中的 Star、Fork、Issue 数量与精度指标来自原作者公开披露,诀.com 未独立验证;840 多个站点的判定准确率随平台反爬策略变化,实际结果不保证复现。
仓库指标、扫描耗时、精度与阈值描述均来自原作者公开披露,诀.com 未独立验证;本文没有复现任何扫描结果。用户反馈摘要
根据仓库 Issue 来看,反馈集中在检测准确性。有提交者报告最新提交把站点清单路径写死在 /usr/bin,启动即抛 FileNotFoundError,该问题状态为已解决;也有提交者报告非 ASCII(中文、CJK)用户名未做 URL 编码,反爬或访客页被误判为 Found,同为已解决;还有报告 YouTube、Instagram 和 Pinterest 三个站点先显示找到用户,打开页面却不存在。另有一条建议接入 Hudson Rock 失泄情报接口,按用户名查询泄露信息。
基于该仓库公开 Issue 整理,只反映提交者报告的现象与诉求,不代表诀.com 立场,也不代表问题已被确认。项目来源与说明
开源项目:arxhr007(arxhr007)
本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。
查看项目仓库