PhoneInfoga 完整教程:3 步拿到一个电话号码的运营商、线路类型与网络足迹
【免费下载链接】phoneinfogaInformation gathering framework for phone numbers项目地址: https://gitcode.com/GitHub_Trending/ph/phoneinfoga
客服工单里跳出一个陌生 +33 开头的号码,报障内容有点可疑。你想知道它是什么线路、有没有被人投诉过。PhoneInfoga 就是这个场景下的工具:输入号码,多个数据源并行查询,一次性输出国家、运营商、线路类型和一批待查的网络线索。
一句话看懂它
PhoneInfoga 是一个用 Go 写的电话号码信息收集框架(OSINT 工具):先解析号码基础信息(国家、运营商、移动/固话),再通过不同扫描器去查 VoIP 归属、投诉记录和社交媒体足迹。
可以把它理解成号码的"户籍查询窗口":你自己不用分别跑运营商网站、搜索引擎、VoIP 数据库,这个窗口一次性把各部门的登记材料给你。和单点的号码验证站不同(它们通常只回答"号存在不存在"),PhoneInfoga 是一组可并行、可扩展的扫描器,查到的每一条信息都标明来自哪个来源,方便你交叉判断。
它明确不做的事(官方写在 README 的 Anti-features 里):不承诺数据一定准确、不能实时定位手机、不能拿到精确位置、更不能"黑进"任何电话。它只是帮你省掉跑腿的活。
3 步跑起来 PhoneInfoga:安装、一条扫描命令、看结果
第 1 步:安装。macOS 用户一行搞定:
brew install phoneinfoga其他系统可以从官方 release 下载对应平台的二进制,或者直接用 Docker(docker pull sundowndev/phoneinfoga:latest),详见安装文档。装完可以用phoneinfoga version确认。
第 2 步:跑一条扫描命令。注意号码必须带国家码,但+、括号、短横线都可以随便输:
phoneinfoga scan -n "+41 76 418 12 34"第 3 步:看结果。即使不配置任何 API 密钥,local 扫描器也会立即返回格式化后的号码信息:
Results for local Raw local: 0764181234 Local: 076 418 12 34 E164: +41764181234 Country: CH配置了NUMVERIFY_API_KEY后,还会多出运营商和线路类型等字段;配置 Google 相关密钥后则是网络搜索结果。所有扫描器文档在扫描器说明。
不想用命令行的话,起一个 Web 服务,浏览器里查:
phoneinfoga serve -p 8080然后打开http://localhost:8080,左边填国家码和号码,点 Lookup 即可:
4 个数据源怎么协作:幕后流程
一次扫描在内部大致分三步走:
- 标准化:你的输入先经过 lib/number/ 模块清洗,统一转成 E.164 格式并识别出国家码,这一步保证后面所有扫描器拿到的都是同一个"标准号码"。
- 并行扫描:lib/remote/remote.go 里的 Library 结构体把每个扫描器放到一个独立的 goroutine 里同时跑——Numverify 查运营商、GoogleSearch 生成搜索链接、OVH 查欧洲 VoIP 号段,谁先回来谁先入账,互不阻塞,某个扫描器报错也只记录它自己的错误,不影响其他结果。
- 归集输出:结果按扫描器名称分组,成功和失败都列出来,交给终端或 Web 端展示。
值得记住的一个机制是DryRun:每个扫描器跑之前先"体检",比如没有 API 密钥就不执行、直接静默跳过。所以某次扫描输出里少了某个来源,大概率不是坏了,而是没配它的密钥。另外 lib/filter/ 里有个过滤引擎,配合--disable参数可以临时禁用某个扫描器。
从单次扫描到真实使用:适合谁,不适合谁
比较适合的场景:
- 客服/风控排查:接到可疑来电或投诉订单,先查它是移动号、固话还是 VoIP,再顺着 GoogleSearch 给出的链接去查有没有公开的投诉记录。
- 安全调查(OSINT):调查人员把一个号码的多角度信息(号段归属、一次性号码平台、社交平台足迹)汇总到一张报告里。
- 程序化集成:项目本身带 REST API 和 Go 模块,团队可以把它嵌进自己的风控流程,批量验证后再做人工判断。
不太适合的场景:
- 想要精确实时定位某部手机——它做不到,官方明确列在 Anti-features 里。
- 想要一个"一键权威结论"——它输出的是各来源的原始信息,交叉判断的活留给你。
- GoogleSearch 扫描器只生成搜索链接,不会自动抓取页面内容(这是为避免搜索引擎反抓取限制的刻意设计);想自动拿结果,改用需要配密钥的 Google CSE 扫描器(每天有 100 次免费查询额度)。
一句话:把它当成"把该查的地方都列出来并先查一遍"的助手,而不是终极裁判。
踩坑清单与进阶:API 密钥、自定义扫描器、Docker 部署
先避坑:
常见报错
given phone number is not valid,几乎都是漏了国家码或号码本身不合法,不是工具的问题。
- API 密钥走环境变量:
NUMVERIFY_API_KEY、GOOGLECSE_CX+GOOGLE_API_KEY等,写进当前目录的.env文件会被自动读取,也可用--env-file指定别的路径。 - 别把 numverify 的密钥搞混:文档特别注明,要填的是 apilayer 的 Number Verification API 密钥,不是 numverify 官网的。
- 少一个扫描器的输出别慌:DryRun 会静默跳过未配置的扫描器,这是预期行为。
- 数据别当权威:输出的是各数据源的原始结果,涉及对用户的结论前请人工复核。
进阶方向:
- Web/API 部署:
phoneinfoga serve --no-client可以只跑 REST API 不带网页;Docker 编排配置在 support/docker/,服务无状态、不需要持久化存储,适合直接上生产。 - 自定义扫描器:用 Go 写一个插件,实现 Name / DryRun / Run 三个方法即可,
phoneinfoga scan -n <号码> --plugin ./my_scanner.so加载。可直接参考 examples/plugin/customscanner.go 这个现成模板。 - Go 模块方式调用:不一定要走命令行,Go 模块用法 演示了如何在自己的 Go 项目里 import 它。
下次再看到陌生号码,几秒钟就能拿到它的"基本盘";更多细节看官方文档,想参与开发读贡献指南(项目采用 GPL v3.0 协议开源)。
【免费下载链接】phoneinfogaInformation gathering framework for phone numbers项目地址: https://gitcode.com/GitHub_Trending/ph/phoneinfoga
创作声明:本文部分内容由AI辅助生成(AIGC),仅供参考