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。

Aliens_eye 项目标识图

多数同类脚本判断账号是否存在,靠的是 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 未独立验证;本文没有复现任何扫描结果。

项目来源与说明

开源项目:arxhr007(arxhr007)

本文由诀.com 编辑基于该项目的公开信息独立撰写,属原创解读,不是对项目文档的翻译或转载;文中提到的功能与参数以官方仓库为准,代码与文档版权归原作者所有。

查看项目仓库