CarlosA49/phone-intel
GitHub: CarlosA49/phone-intel
一款基于 libphonenumber 的黑客主题电话号码情报工具,提供号码注册元数据(归属地、运营商、线路类型、时区等)的查询与批量分析,具备终端和 Web 双界面,核心功能完全离线运行。
Stars: 0 | Forks: 0
# 📡 PHONE_INTEL — 电话号码情报终端
一款黑客主题的 OSINT 工具,在输入电话号码后,会展示**所有可从号码本身合法获取的信息**:该号码*注册*的国家和地区、运营商、线路类型、有效性、时区以及当地的当前实时时间。提供终端 (TUI) **和** Web 界面,两者均由一个诚实可靠的 Python 引擎提供支持。
```
___ __ __ ___ _ ___ ___ _ _____ ___ ___
/ __| \/ / __| | | / _ \/ __| /_\_ _/ _ \| _ \
\__ \ |\/| \__ \ | |_| (_) \__ \/ _ \| || (_) | /
|___/_| |_|___/ |____\___/|___/_/ \_\_| \___/|_|_\
```
## ⚖️ 它的功能 —— 以及刻意不做的部分
本工具报告的是**号码元数据**。它**不能**识别*所有者*,也**不能**追踪某人的实时位置,因为**这两者都无法仅凭电话号码推导出来**。任何声称可以通过陌生人的号码揭露其真实姓名或实时 GPS 位置的网站,都是骗局、转售泄露数据的经纪人,或是恶意软件。
| ✅ 它可以做到的(来自号码的真实数据) | ❌ 它无法做到的(不可能实现 / 禁止越界) |
|---|---|
| 国家和拨打代码 | 所有者的姓名或身份 |
| **注册地区**(例如:“San Francisco, CA”) | 此人的**实时**位置 / GPS |
| 运营商 / 网络提供商 | 家庭住址 |
| 线路类型(手机 / VoIP / 固定电话 / 免费电话…) | 社交媒体或账户去匿名化 |
| 有效性及所有号码格式 | 任何需要运营商/搜查令/恶意软件访问权限的内容 |
| 时区 + **实时本地时钟** | |
## 🚀 安装
```
pip install -r requirements.txt # quick start
# — 或者安装为 package,从而使 `phone-intel` 出现在你的 PATH 中:
pip install -e . # core CLI
pip install -e ".[web]" # + Flask web app
```
然后运行 `phone-intel +14155552671`(或 `python -m phone_intel +14155552671`)。
需要 Python 3.9+(已在 3.12 版本上测试)。依赖项:`phonenumbers`(Google 的 libphonenumber 数据集)、`rich`、`qrcode`、`requests`;Web 应用需要 `flask`。
## 🖥️ 终端 (TUI)
```
# 单个号码
python -m phone_intel +14155552671
scan.bat +14155552671 # Windows convenience launcher
# 带有 tel: URI 的 ASCII QR,以及实时 API enrichment
python -m phone_intel "+63 917 123 4567" --qr --live
# 基于文件的 batch recon(每行一个号码,'#' = 注释)
python -m phone_intel --batch numbers.txt
# 导出 JSON + vCard + QR.png(以及用于 batch 的 CSV)
python -m phone_intel +442079460958 --export out
# raw JSON,无额外修饰(适合 piping)
python -m phone_intel +14155552671 --json
# interactive recon shell(无参数)
python -m phone_intel
```
### 标志位
| 标志位 | 作用 |
|---|---|
| `-r, --region ISO` | 国内格式号码的默认地区(例如 `US`) |
| `--batch FILE` | 批量扫描多个号码,打印汇总表 |
| `--export PREFIX` | 输出 JSON / vCard / QR-PNG(批处理模式下额外输出 CSV) |
| `--qr` | 渲染 `tel:` URI 的 ASCII 二维码 |
| `--live` | 实时运营商/有效性富化查询(可选;需要私有的实时模块 + 密钥) |
| `--spam` | 实时欺诈/垃圾邮件评分(可选;需要私有的实时模块 + 密钥) |
| `--json` | 输出原始 JSON,跳过所有动画 |
| `--matrix` | 黑客帝国数字雨开场(纯属氛围感) |
| `--no-reputation` | 隐藏启发式风险评估 |
| `--no-fx` | 禁用所有动画(瞬间显示) |
## 🌐 Web 终端
```
python web/app.py # -> http://127.0.0.1:5000
run_web.bat # Windows
```
具备黑客帝国数字雨背景、扫描动画、实时跳动时钟、以**注册区域**为中心的深色 Leaflet 地图(并明确标注为“非个人定位”)、启发式风险标签,以及 JSON 复制/导出功能。浏览器仅作为瘦客户端——真正的处理工作由同一个 Python 引擎通过 `/api/lookup` 完成。
## 🚀 免费部署完整应用(可选)
[在线演示](https://carlosa49.github.io/phone-intel/) 是客户端运行的。如果要将**完整的 Python 应用**部署到线上——包括真实运营商、精确的注册区域、每个号码的时区以及引擎计算的所有内容——请部署 Flask 应用。本仓库已具备部署条件(包含 `render.yaml` + `Procfile`、gunicorn)。
**Render(免费,约一键部署):**
[](https://render.com/deploy?repo=https://github.com/CarlosA49/phone-intel)
1. 点击按钮(或前往 render.com → **New → Blueprint** → 选择此仓库)。
2. Render 读取 `render.yaml`,进行构建,并提供一个 `https://…onrender.com` URL。
3. 免费实例在空闲约 15 分钟后会休眠(随后的第一个请求需要约 50 秒来唤醒)。
适用于任何支持 `Procfile` 的主机(Railway、Koyeb 等)。如果需要永远在线的免费方案,Hugging Face Spaces (Docker) 也可以。
## 🧠 功能特性
- 基于 Google 的 libphonenumber 提供的**真实数据**:国家、地区、运营商、线路类型、时区、有效性。
- **实时本地时钟** ⏱ —— 号码所在时区当前的挂钟时间,会实时跳动。
- **信誉启发式评估** —— 标记结构性风险信号(高额费率、VoIP/一次性号码、无效号码)。明确标注为启发式评估,*不是*垃圾邮件数据库的判定结果。
- **批量侦察** —— 扫描列表,获取汇总表 / CSV。
- **导出功能** —— JSON、CSV、vCard(`.vcf`,仅包含号码元数据)、二维码(ASCII + PNG)。
- **可选的实时富化查询** —— 通过私有模块(此处未包含)提供可插拔的实时运营商和欺诈评分提供商;公开版本完全在离线下运行。
- **完全离线的 Web 地图** —— 全球边界数据在本地内嵌(不依赖切片服务器,无外部调用);CSP 仅限同源。
- **支持 `pip install` 安装** —— 暴露 `phone-intel` 命令;通过 `pip install -e ".[web]"` 可添加 Flask 应用。
- **两个前端,一个引擎** —— 终端和浏览器中显示的结果完全一致。
## 🔌 可选:实时富化查询与欺诈数据库
`--live`(运营商/有效性)和 `--spam`(欺诈评分)功能由**故意未包含在本仓库中的私有集成模块**提供支持。没有它,一切仍然可以通过内置的 libphonenumber 数据集在离线下正常运行——`--live` / `--spam` 只会报告“不可用”。
安装私有模块后,在您的环境变量中设置相关的 API 密钥即可启用各项功能。这两项集成均不会泄露所有者的身份或实时位置。
## 🗂️ 布局
```
phone_intel/ # the engine (importable package)
core.py # lookup() -> Intel (real data only)
reputation.py # heuristic risk + optional live API
report.py # JSON / CSV / vCard / QR exporters
effects.py # hacker-terminal animations (cosmetic)
cli.py # TUI front end
countries.py # public country geo data (auto-generated)
web/
app.py # Flask backend (/api/lookup)
templates/, static/
numbers.txt # sample batch input
```
## 📋 关于 `index.html` 的说明
位于仓库根目录的原始独立 `index.html`(旧版 "v1")包含一个**模拟的订阅者姓名生成器**——它为每个号码编造一个随机的假 "SUBSCRIBER NAME"(订阅者姓名)并将其作为真实查询结果展示。这种行为具有欺骗性,因此该页面已被**替换为静态通知**,解释其停用的原因并指向真正的工具。它不执行任何查询。请使用 `web/` 应用或 TUI 获取实际结果。
*仅供教育 / 合法用途。号码元数据属于公共编号计划数据。本工具不存储数据、不识别所有者、不追踪人员。*
标签:DNS解析, ESC4, Flask, libphonenumber, meg, OSINT, Python, SEO工具, TUI, 信息安全, 元数据查询, 号码归属地查询, 号码格式化, 安全研发, 实时处理, 开源项目, 情报收集工具, 手机号码归属地, 技术安全工具, 无后门, 时区查询, 电话元数据, 电话区号, 电话号码分析, 电话号码查询, 电话号码验证, 终端界面, 网络安全, 网络情报, 赛博安全, 运营商查询, 逆向工具, 隐私保护, 隐私合规, 黑客主题