gOSINT手机号查询指南:PNI模块如何用OCR识别验证码获取机主姓名
2026/8/18 17:17:43 网站建设 项目流程

gOSINT手机号查询指南:PNI模块如何用OCR识别验证码获取机主姓名

【免费下载链接】gOSINTOSINT Swiss Army Knife项目地址: https://gitcode.com/gh_mirrors/go/gOSINT

你是否曾经接到陌生来电,却不知道对方是谁?作为一款用 Go 编写的开源 OSINT 瑞士军刀,gOSINT 提供了强大的手机号查询能力——其内置的 PNI(Phone Number Investigation)模块,只需一条命令,就能通过 OCR 识别验证码的方式,自动帮你查出一个手机号码对应的机主姓名。本指南将面向新手,一步步讲解 gOSINT 手机号查询的完整流程与 PNI 模块的工作原理。

gOSINT 是什么:集多功能于一体的 OSINT 工具箱 🔍

gOSINT 是一个跨平台的开源情报(OSINT)收集工具,作者将其称为"OSINT 瑞士军刀"。它集成了众多实用模块:Git 邮箱收集、PGP 密钥查询、密码泄露检测(HIBP)、Shodan 主机扫描、Telegram 群组爬取、子域名枚举、反查 Whois,以及我们今天的主角——手机号机主查询(PNI 模块)。

从上图可以看出,gOSINT 采用了高度模块化的架构设计,各功能模块相互独立、按需调用,PNI 模块正是其中负责手机号情报收集的关键组件。

PNI 模块能做什么:一条命令查出机主姓名 📱

PNI 模块(即 Phone Number Investigation)的核心功能只有一个:给定一个带国家代码的手机号,自动查询并返回机主姓名。它的实现源码位于 internal/pni/pni.go,整个查询逻辑完全自动化,你无需手动操作浏览器或填写任何表单。

安装准备:两分钟完成环境搭建 ⚙️

在开始手机号查询之前,需要先准备好运行环境。由于 PNI 模块依赖 tesseract-ocr 引擎来识别验证码,请先安装以下依赖:

  • tesseract-ocr(OCR 识别引擎本体)
  • libtesseract-dev(开发库)
  • libleptonica-dev(图像处理库)

安装完依赖后,克隆项目并编译:

git clone https://gitcode.com/gh_mirrors/go/gOSINT cd gOSINT dep ensure make

编译完成后,当前目录下就会生成gosint可执行文件。如果想了解所有子命令,直接运行./gosint --help即可。

PNI 手机号查询的完整工作流程 🔄

很多新手会好奇:gOSINT 是如何做到自动识别验证码、无需人工参与的?其实整个过程分为三步,代码逻辑一目了然。

第一步:模拟移动端浏览器,获取验证码

查询并非直接发送请求,而是先模拟 Android 移动端浏览器的 User-Agent 访问 sync.me 的搜索页面。PNI 模块会从返回的 HTML 中通过正则表达式提取出验证码图片的 ID,再根据该 ID 下载验证码图片。这一步对应源码中的sendGETRequest函数,它负责维护 Cookie 会话,确保后续请求状态一致。

第二步:OCR 识别验证码,自动"破解"人机验证

这是整个模块最精妙的部分。拿到验证码图片后,gOSINT 调用 Go 语言的 gosseract 库(tesseract-ocr 的 Go 封装)对图片进行 OCR 文字识别,并设置了字母数字白名单来提升识别准确率,对应源码中的solveCaptcha函数。识别出的验证码会随 POST 请求一起提交,从而通过网站的验证门槛。

第三步:提交手机号,解析返回的机主姓名

验证通过后,模块会携带同样的会话再次提交 POST 请求,查询目标手机号,服务器返回的 JSON 数据中包含机主姓名。如果返回的error_code为 0,说明查询成功;如果返回 8203,则说明未能找到机主信息

gOSINT手机号查询最快上手方法 🚀

环境就绪后,手机号查询操作简单到只需一行命令。注意:手机号必须以+开头并带上国家代码,否则模块会直接报错退出。

查询单个号码(默认输出机主姓名):

./gosint pni +8613800138000

使用 JSON 格式输出(适合脚本二次处理):

./gosint --json pni +8613800138000

一次查询多个号码也完全支持,只需在命令后依次列出所有号码即可。命令入口定义在 cmd/gosint/main.go,模块入口则是 internal/pni/pni.go 中的StartPNI函数。

常见问题与排错指南 🛠️

  • 提示"Unable to complete the challenge correctly":说明 OCR 识别验证码失败,这通常是因为验证码图片模糊或字符变形。此时程序会输出提示,重试即可,若反复失败可考虑更换验证码识别策略。

  • 提示"Unable to find owner":返回错误码 8203,表示该号码在 sync.me 数据库中查无记录,换一个号码试试。

  • 输出乱码或解析失败:可以在命令后追加--debug参数,把调试输出反馈给开发者排查问题。

  • 忘记带国家代码:模块会明确提示is invalid, You must specify the country code with +,补上+前缀即可。

写在最后:合规使用提醒 ⚖️

gOSINT 手机号查询功能展示了 OSINT 自动化的魅力:一个命令行工具,配合 OCR 验证码识别,就能自动完成原本需要人工多次点击的查询流程。PNI 模块是学习 Go 语言编写爬虫与 OCR 集成的绝佳示例,其代码风格简洁、模块边界清晰,非常适合新手阅读。

不过请务必牢记:手机号属于敏感个人信息,查询机主信息请仅用于合法授权范围内的场景(如反诈骗取证、自有号码核实等),切勿用于骚扰、诈骗或其他非法用途。技术本身没有对错,善用工具,才能让 OSINT 发挥正向价值。

想进一步了解其他模块?不妨看看 README.md 中的完整功能清单,逐一体验这份"瑞士军刀"的更多用法。

【免费下载链接】gOSINTOSINT Swiss Army Knife项目地址: https://gitcode.com/gh_mirrors/go/gOSINT

创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考

需要专业的网站建设服务?

联系我们获取免费的网站建设咨询和方案报价,让我们帮助您实现业务目标

立即咨询