Vishal-HaCkEr1910/Phone-Number-Tracker
GitHub: Vishal-HaCkEr1910/Phone-Number-Tracker
一个集多API共识定位、OSINT探测、IP获取和取证级案件管理于一体的手机号码情报调查框架。
Stars: 9 | Forks: 3
# 📱 手机号码追踪器
## 🚀 功能概览
| # | 功能 | 描述 |
|---|---------|-------------|
| 1 | **手机号码解析与验证** | E.164 / 国际 / 国内格式,有效性 + 可行性检查,自动国家代码检测 |
| 2 | **取证手机活跃度检查** | Trestle 活跃度评分 (0-100),实时可达性,严格的线路类型保真度 (Mobile vs Non-Fixed VoIP) |
| 3 | **CDR 式用户信息** | 运营商、国家、时区、地区、线路类型、HLR 状态、网络可达性 |
| 4 | **印度电信圈数据库** | 700+ 前缀 → 电信圈映射 (Jio, Airtel, Vi, BSNL) 附带 SIM 注册城市 |
| 5 | **实时位置 (多 API 共识)** | 交叉比对多达 7 个来源并进行加权投票 → 最可能的当前城市 |
| 6 | **漫游检测** | 比较 SIM 注册圈与实时网络城市 → 标记漫游 |
| 7 | **IP 获取链接** | 基于 Flask 的追踪链接,可捕获访客 IP、User-Agent、GPS(如果允许),并配有 Rich 实时仪表板 |
| 8 | **高级地理定位** | OpenCage + Nominatim 正/反向地理编码 → 纬度/经度 + 格式化地址 |
| 9 | **OSINT 平台探测** | WhatsApp, Telegram, Truecaller (多种方法), Eyecon, SyncMe, Facebook, Instagram, Google |
| 10 | **UPI ID 生成** | 为印度号码自动生成 10 个可能的 UPI ID (@paytm, @ybl, @okaxis, @upi 等) |
| 11 | **邮箱情报** | 通过手机号码猜测邮箱、Gravatar 个人资料查询、AbstractAPI 邮箱验证 |
| 12 | **Truecaller 多种方法** | 3 个 API 端点 + 网页抓取 + JSON 提取 — 尝试获取所有者姓名和邮箱 |
| 13 | **深度 OSINT** | 垃圾数据库检查 (SpamCalls.net, ShouldIAnswer)、泄露式暴露检查、网络提及抓取 |
| 14 | **所有者姓名检测** | 从 Truecaller/SyncMe/Eyecon 自动提取真实姓名并显示在摘要中 |
| 15 | **案件管理** | 案件 ID (自动 UUID 或自定义)、操作员姓名、单位、分类等级 |
| 16 | **审计追踪与证据哈希** | SHA-256 保管链、逐阶段证据记录、持久化审计日志文件 |
| 17 | **HTML 报告 (专业版)** | 深色主题报告,包含分类横幅、案件元数据、法律声明、审计追踪、SHA-256 哈希 |
| 18 | **JSON 导出** | 取证封装,包含案件元数据、证据完整性哈希、完整数据转储 |
| 19 | **交互式地图** | 包含 SIM 位置 + 实时位置标记及热力图层的 Folium 地图 |
| 20 | **持久化 API 密钥** | 每次运行时通过 `python-dotenv` 自动加载 `.env` 文件 |
| 21 | **灵活的 CLI** | 分组参数类别、API 状态面板、版本标志、带示例的结语 |
## 📦 安装说明
### 1. 克隆 / 下载
```
git clone https://github.com/Vishal-HaCkEr1910/Python_Cybersec_Projects.git
cd Python_Cybersec_Projects
```
### 2. 创建虚拟环境
```
python3 -m venv .venv
source .venv/bin/activate # macOS / Linux
# .venv\Scripts\activate # Windows
```
### 3. 安装依赖项
```
pip install -r requirements.txt
```
**必需的包:**
```
phonenumbers
opencage
folium
requests
colorama
rich
beautifulsoup4
lxml
python-dotenv
flask
tqdm
fake-useragent
httpx
```
或手动安装:
```
pip install phonenumbers opencage folium requests colorama rich beautifulsoup4 lxml python-dotenv flask tqdm fake-useragent httpx
```
## 🔑 API 密钥设置
PhoneTrackerPro 使用 4 个 API 密钥以获取最大情报。**均为免费层级。**
### 获取您的 API 密钥
| API | 注册链接 | 免费层级 | 用途 |
|-----|-------------|-----------|----------|
| **Trestle** | [trestleiq.com/signup](https://trestleiq.com/signup) | 25 次请求/月 | 实时活跃度评分,VoIP/Burner 检测 |
| **Numverify** | [numverify.com/signup](https://numverify.com/signup) | 100 次请求/月 | 运营商查询,位置投票 |
| **AbstractAPI** | [app.abstractapi.com](https://app.abstractapi.com/users/signup) | 1000 次请求/月 | 手机号码验证,位置投票 |
| **ipinfo** | [ipinfo.io/signup](https://ipinfo.io/signup) | 50,000 次请求/月 | 您的 IP 位置(参考点) |
| **OpenCage** | [opencagedata.com](https://opencagedata.com/users/sign_up) | 2,500 次请求/天 | 正/反向地理编码 |
### 设置 `.env` 文件
在项目根目录下创建一个 `.env` 文件:
```
TRESTLE_API_KEY=your_trestle_key_here
NUMVERIFY_API_KEY=your_numverify_key_here
ABSTRACT_API_KEY=your_abstract_api_key_here
IPINFO_TOKEN=your_ipinfo_token_here
OPENCAGE_API_KEY=your_opencage_key_here
```
## 🛠 用法 — 所有命令
### 基本语法
```
python phone_tracker.py [options]
```
### 输入格式 (均支持)
```
python phone_tracker.py +919876543210 # Full international
python phone_tracker.py 9876543210 # Auto-adds +91 (India default)
python phone_tracker.py 09876543210 # Leading 0 stripped
python phone_tracker.py +1-202-555-0100 # US number with dashes
python phone_tracker.py "(+91) 98765-43210" # Parentheses and dashes
```
### 🔍 扫描模式
#### 全面扫描 (默认 — 全部 8 个阶段)
```
python phone_tracker.py +919876543210
```
运行:解析 → 基本信息 → 电信圈 → 实时位置 → 地理定位 → OSINT → 深度 OSINT → 报告
#### 快速扫描 (仅基本信息 + 电信圈)
```
python phone_tracker.py +919876543210 --quick
```
快速检查 — 跳过所有高级阶段。非常适合快速的运营商/电信圈查询。
#### 跳过特定阶段
```
# 跳过实时位置检测(节省约5秒)
python phone_tracker.py +919876543210 --skip-live
# 跳过 OSINT 平台探测(WhatsApp、Telegram 等)
python phone_tracker.py +919876543210 --skip-osint
# 跳过深度 OSINT(垃圾数据库、违规检查、网络提及)
python phone_tracker.py +919876543210 --skip-deep
# 跳过两个 OSINT 阶段(仅位置情报)
python phone_tracker.py +919876543210 --skip-osint --skip-deep
# 仅位置扫描(最快的有意义的扫描)
python phone_tracker.py +919876543210 --skip-osint --skip-deep
```
### 🎯 IP 获取模式
生成一个追踪链接,用于捕获目标的 IP 地址、浏览器信息和 GPS 坐标(如果对方允许位置访问)。**IP 获取器会在全面扫描之后运行**,因此您可以同时获得所有情报和抓取到的 IP。
```
# Full scan + IP grabber 在默认端口 (8888)
python phone_tracker.py +919876543210 --grab
# Full scan + IP grabber 在自定义端口
python phone_tracker.py +919876543210 --grab --grab-port 9999
```
**它的作用:**
1. 运行完整扫描(所有阶段)
2. 保存 JSON + HTML + 地图报告
3. 然后在您的机器上启动一个 Flask Web 服务器
4. 生成追踪 URL(例如,`http://192.168.1.5:8888/track/e921e8732992`)
5. 显示一个带有捕获访客数据的 **Rich 实时仪表板**
6. 将所有捕获内容保存到 `output/grab_.json`
**当有人打开链接时,它会捕获:**
| 数据 | 方式 |
|------|-----|
| IP 地址 | 服务器端(始终捕获) |
| 城市 / 地区 / 国家 | IP 地理位置查询 |
| ISP / ASN | IP 信息 API |
| User-Agent | 浏览器标头 |
| 平台 / 操作系统 | 从 UA 解析 |
| GPS 坐标 | 浏览器地理位置 API (需要用户授权) |
| 准确度 | GPS 准确度(以米为单位) |
| 时间戳 | 服务器端 UTC 时间戳 |
#### 🌐 使用 ngrok 进行暴露 (针对远程目标)
默认情况下,追踪链接仅在您的本地网络上有效。要使其可通过互联网访问,请使用 **ngrok**:
**步骤 1:安装 ngrok**
```
# macOS
brew install ngrok
# Linux
sudo snap install ngrok
# 或从 https://ngrok.com/download 下载
```
**步骤 2:注册并获取 auth token**
- 前往 [https://dashboard.ngrok.com/signup](https://dashboard.ngrok.com/signup)
- 从仪表板复制您的 auth token
**步骤 3:验证 ngrok**
```
ngrok config add-authtoken YOUR_AUTH_TOKEN_HERE
```
**步骤 4:启动 PhoneTrackerPro IP 获取器**
```
python phone_tracker.py +919876543210 --grab --grab-port 8888
```
**步骤 5:在一个新的终端中,暴露该端口**
```
ngrok http 8888
```
**步骤 6:复制 ngrok URL**
ngrok 将显示类似如下的内容:
```
Forwarding https://a1b2c3d4.ngrok-free.app -> http://localhost:8888
```
**步骤 7:发送追踪链接**
将追踪 URL 的本地 IP 部分替换为 ngrok URL:
```
Original: http://192.168.1.5:8888/track/e921e8732992
Send this: https://a1b2c3d4.ngrok-free.app/track/e921e8732992
```
当目标打开链接时,其 IP + 位置 + GPS 数据将实时显示在您的终端仪表板中!
### 🏷️ 案件管理
使用案件元数据标记您的扫描,以便进行有序的记录保存:
```
# 自定义 case ID + 操作员姓名
python phone_tracker.py +919876543210 --case-id "CASE-2026-0042" --officer "Vishal Rao"
# 添加单位/团队
python phone_tracker.py +919876543210 --case-id "INV-001" --officer "Agent V" --unit "Cyber Recon"
# 设置分类级别
python phone_tracker.py +919876543210 --classification CONFIDENTIAL
# 完整元数据
python phone_tracker.py +919876543210 \
--case-id "CASE-2026-0042" \
--officer "Vishal Rao" \
--unit "OSINT Division" \
--classification CONFIDENTIAL
```
**分类等级:**
| 等级 | 颜色 | 用例 |
|-------|-------|----------|
| `UNCLASSIFIED` | 🟢 绿色 | 公开 / 开放研究 |
| `RESTRICTED` | 🟡 黄色 | 默认 — 内部使用 |
| `CONFIDENTIAL` | 🔴 红色 | 敏感调查 |
| `SECRET` | 🔴 加粗红色 | 最高敏感度 |
如果未指定:
- **案件 ID:** 自动生成的 UUID(例如,`CASE-20260227-A3F9B2`)
- **操作员:** `OPERATOR`(默认)
- **单位:** `UNSPECIFIED`
- **分类等级:** `RESTRICTED`
### 📄 报告选项
```
# 跳过地图生成
python phone_tracker.py +919876543210 --no-map
# 跳过 HTML 报告
python phone_tracker.py +919876543210 --no-report
# 仅生成 JSON(无 HTML 或地图)
python phone_tracker.py +919876543210 --json-only
# 自定义输出目录
python phone_tracker.py +919876543210 --output-dir results/
# 组合选项
python phone_tracker.py +919876543210 --skip-deep --no-map --output-dir my_reports/
```
### 📌 其他选项
```
# 显示版本
python phone_tracker.py --version
# 显示帮助及所有选项 + 示例
python phone_tracker.py -h
```
## 📁 输出文件
所有输出均保存在 `output/` 目录中(或您的 `--output-dir` 中):
| 文件匹配模式 | 描述 |
|---|---|
| `phone_intel__.json` | 包含取证元数据封装、所有情报数据、证据哈希的完整 JSON |
| `phone_report__.html` | 采用深色主题的专业 HTML 报告,包含分类横幅、法律声明 |
| `phone_map__.html` | 带有 SIM + 实时位置标记的 Folium 交互式地图 |
| `grab_.json` | IP 获取器捕获的内容 (IP、User-Agent、GPS 坐标、时间戳) |
| `output/audit_logs/audit_YYYYMMDD.log` | 持久化审计追踪日志(每天一个,追加写入) |
### JSON 报告结构
JSON 导出会将所有内容封装在一个元数据信封中:
```
{
"case_metadata": {
"case_id": "CASE-20260227-A3F9B2",
"scan_id": "D7E4BF952D5B",
"officer": "Vishal Rao",
"classification": "RESTRICTED",
"timestamp_utc": "2026-02-27T00:57:30Z",
"tool_version": "5.0.0"
},
"phone_number": "+919876543210",
"basic_info": { "..." },
"telecom_circle": { "..." },
"live_location": { "..." },
"all_votes": [ "..." ],
"consensus_city": "Delhi",
"geo_results": { "..." },
"osint_results": { "..." },
"deep_osint": { "..." },
"evidence_integrity": {
"algorithm": "SHA-256",
"hash": "dece06207c8f54c5..."
},
"evidence_chain": [ "..." ],
"audit_trail": [ "..." ]
}
```
### HTML 报告部分
HTML 报告包含:
- 🔒 **分类横幅**(置顶悬浮,根据等级进行颜色编码)
- 📋 **案件元数据网格**(案件 ID、操作员、单位、分类、时间戳)
- 👤 **目标 / SIM 注册详情**(MSISDN、运营商、IMSI 范围、MCC-MNC、HLR 状态)
- 📧 **邮箱情报**(Truecaller 邮箱、猜测的邮箱、Gravatar 个人资料)
- 📡 **位置情报**(共识城市、漫游指示符、纬度/经度、地址)
- 🗳️ **来源投票明细**(哪个 API 投票给了哪个城市、置信度 %)
- 🎯 **IP/设备情报**(如果使用了 IP 获取器)
- 🔍 **OSINT 平台发现**(按平台显示找到/未找到)
- ⚠️ **威胁/风险情报**(垃圾举报、泄露暴露、网络提及)
- 📜 **证据审计追踪**(所有收集阶段的时间戳日志)
- 🔐 **SHA-256 证据完整性哈希**
- ⚖️ **法律免责声明**
- 🖨️ **适合打印的 CSS**(支持 Ctrl+P / Cmd+P)
## ⚙ 工作原理 — 逐阶段说明
```
┌─────────────────────────────────────────────────────────────────┐
│ PHASE 1: PARSE & VALIDATE │
│ phonenumbers library → E.164, valid/possible, country detect │
├─────────────────────────────────────────────────────────────────┤
│ PHASE 2: SUBSCRIBER INFO (CDR-STYLE) │
│ Carrier, country, timezone, line type, HLR/network status │
│ Format: Case ID, Scan ID, Operator, MSISDN, all formats │
├─────────────────────────────────────────────────────────────────┤
│ PHASE 3: TELECOM CIRCLE (India) │
│ 700+ prefix DB → Jio/Airtel/Vi/BSNL → circle + city │
├─────────────────────────────────────────────────────────────────┤
│ PHASE 4: LIVE LOCATION (Multi-API Consensus Voting) │
│ Up to 7 APIs queried → weighted votes → consensus city │
│ Compares with SIM circle → roaming detection │
├─────────────────────────────────────────────────────────────────┤
│ PHASE 5: GEOLOCATION │
│ OpenCage + Nominatim → lat/lng + formatted address │
├─────────────────────────────────────────────────────────────────┤
│ PHASE 6: OSINT PLATFORM PROBES │
│ WhatsApp • Telegram • Truecaller (multi-method) │
│ Eyecon • SyncMe • Facebook • Instagram • Google │
│ UPI ID generation • Email guessing • Gravatar │
├─────────────────────────────────────────────────────────────────┤
│ PHASE 7: DEEP OSINT │
│ Spam DBs (SpamCalls.net, ShouldIAnswer) │
│ Breach-style exposure check │
│ Web mentions scraping (Google dorking) │
├─────────────────────────────────────────────────────────────────┤
│ PHASE 8: REPORTS │
│ JSON (metadata envelope) + HTML (professional) + Folium Map │
├─────────────────────────────────────────────────────────────────┤
│ PHASE 9: IP GRABBER (optional --grab) │
│ Flask server → tracking link → captures IP/GPS in real-time │
└─────────────────────────────────────────────────────────────────┘
```
### 📡 实时位置 — 共识投票系统
该工具会查询多达 7 个不同的来源,并使用 **加权共识投票** 来确定最可能的当前城市:
| 来源 | 权重 | 需要 API 密钥 |
|--------|--------|-----------------|
| Trestle | 5 | ✅ `TRESTLE_API_KEY` |
| Numverify | 3 | ✅ `NUMVERIFY_API_KEY` |
| AbstractAPI | 3 | ✅ `ABSTRACT_API_KEY` |
| ipinfo | 2 | ✅ `IPINFO_TOKEN` |
| Free Network Probe | 1 | ❌ |
| VLR/MSC Detection | 1 | ❌ |
| PhoneInfo Probe | 1 | ❌ |
| MobileTracker Probe | 1 | ❌ |
**投票原理:**
1. 每个 API 返回一个城市/地区
2. 城市名称被标准化(不区分大小写,"New Delhi" → "Delhi")
3. 根据来源的可靠性对投票进行加权
4. 加权得票数最高的城市获胜
5. 置信度计算方式为 `(获胜票数 / 总票数)`
6. 如果共识城市 ≠ SIM 注册城市 → 标记为 **漫游 (ROAMING)**
### 🔍 OSINT 探测 — 各自的作用
| 探测 | 方法 | 能查到的内容 |
|-------|--------|---------------|
| **WhatsApp** | 通过 Web 端点进行注册检查 | 该号码是否在 WhatsApp 上注册 |
| **Telegram** | 用于检查用户是否存在的 API 探测 | Telegram 上是否存在该资料 |
| **Truecaller** | 3 个 API 端点 + 网页抓取 + JSON 提取 | 所有者姓名、电子邮件(获取完整数据需要身份验证) |
| **Eyecon** | 来电 API 探测 | 如果公开列出,则显示姓名 |
| **SyncMe** | 来电显示查询 | 来自 SyncMe 数据库的姓名 |
| **Facebook** | 密码重置流程指示器 | 是否有 FB 账号绑定该号码 |
| **Instagram** | 账号恢复信号检测 | 是否有 IG 账号绑定该号码 |
| **Google** | 网页抓取手机号码的提及 | 网络上关于该号码的公开提及 |
| **UPI IDs** | 模式生成 | 10 个可能的 UPI 地址 (@paytm, @ybl, @okaxis 等) |
| **Email Guess** | 根据手机号码生成模式 | 5 个可能的电子邮件 (number@gmail.com, @yahoo, @outlook 等) |
| **Gravatar** | 针对 Gravatar API 的哈希查找 | 如果存在电子邮件,则获取头像图片 + 显示名称 |
| **AbstractAPI Email** | 电子邮件验证 API | 验证猜测的电子邮件是否可投递 |
### 🔐 证据完整性与审计追踪
每次扫描都会生成完整的审计追踪:
**保管链日志:**
- 每个阶段均记录:时间戳 (UTC)、操作、详情、扫描 ID、操作员
- 每个条目都包含一个与前一个条目相链的 SHA-256 哈希(防篡改)
- 存储在 `self.evidence_chain` 中并导出为 JSON
**证据完整性哈希:**
- 收集所有数据后,将对整个 JSON payload 计算 SHA-256 哈希
- 此哈希出现在终端摘要、HTML 报告和 JSON 导出中
- 对数据进行任何修改都会产生不同的哈希值
**持久化审计日志文件:**
- 写入 `output/audit_logs/audit_YYYYMMDD.log`
- 每天一个文件,每次扫描时追加写入
- 格式:`YYYY-MM-DD HH:MM:SS | INFO | [ACTION] ScanID=XXX | detail`
审计日志示例:
```
2026-02-27 00:56:38 | INFO | [SCAN_INITIATED] ScanID=D7E4BF952D5B | Target=9469593244, Officer=Vishal, Case=CASE-2026-0042
2026-02-27 00:56:38 | INFO | [NUMBER_PARSED] ScanID=D7E4BF952D5B | E164=+919469593244, Valid=True, CC=+91
2026-02-27 00:56:38 | INFO | [BASIC_INFO_COLLECTED] ScanID=D7E4BF952D5B | Carrier=BSNL MOBILE, Country=India, Type=Mobile
2026-02-27 00:56:45 | INFO | [live_location_complete] ScanID=D7E4BF952D5B | Consensus: Jammu Kashmir, Votes: 1
2026-02-27 00:56:46 | INFO | [geolocation_complete] ScanID=D7E4BF952D5B | Resolved: India
2026-02-27 00:57:16 | INFO | [osint_complete] ScanID=D7E4BF952D5B | Platforms found: 3, Owner: Unknown
2026-02-27 00:57:30 | INFO | [deep_osint_complete] ScanID=D7E4BF952D5B | Breach sources: 0
2026-02-27 00:57:30 | INFO | [report_generated] ScanID=D7E4BF952D5B | HTML report saved: output/phone_report_...html
```
### 🗺️ Folium 地图
交互式地图包含:
- 📍 **SIM 注册标记**(SIM 激活的位置)
- 📡 **实时/共识位置标记**(手机当前所在位置)
- 🔥 **热力图层**(如果可以使用来自 IP 获取器的 GPS 数据)
- 🏷️ 带有运营商、电信圈、坐标的弹出式卡片
- 🌍 OpenStreetMap + 卫星切片图层
## 🧰 高级用法示例
### 组合使用所有功能
```
# 带 case 管理的 Full scan,然后是 IP grabber
python phone_tracker.py +919876543210 \
--case-id "RECON-001" \
--officer "Agent V" \
--unit "CyberOps" \
--classification CONFIDENTIAL \
--grab \
--grab-port 9999
```
### 快速查询 (仅运营商 + 电信圈)
```
python phone_tracker.py 9876543210 --quick
```
### 仅位置情报 (跳过 OSINT)
```
python phone_tracker.py +919876543210 --skip-osint --skip-deep
```
### 最小输出 (仅 JSON,无地图)
```
python phone_tracker.py +919876543210 --json-only --no-map
```
### 批量处理 (Shell 循环)
```
for num in 9876543210 9123456789 9555555555; do
python phone_tracker.py $num --json-only --skip-deep --output-dir batch_results/
sleep 2 # Rate limit courtesy
done
```
## 📊 终端输出预览
运行全面扫描时,您会看到:
1. **ASCII 横幅** — PhoneTrackerPro v5.0.0
2. **扫描配置面板** — 模式、API 密钥状态、分类、案件 ID、输出目录
3. **CDR 式用户表格** — 案件 ID、扫描 ID、操作员、MSISDN、运营商、HLR 状态、格式
4. **电信圈** — 电信圈名称 + SIM 注册城市
5. **实时位置投票表** — 每个 API 的投票及置信度 %
6. **实时位置摘要** — 共识城市、漫游状态、检测方法
7. **地理位置表格** — 城市、州/省、国家、纬度/经度、地址、时区
8. **OSINT 情报表格** — 每个平台找到/未找到的详情
9. **深度 OSINT 结果** — 垃圾评分、泄露暴露、网络提及
10. **报告生成** — JSON、HTML、地图的文件路径
11. **分类横幅** — 带有颜色编码的分类等级
12. **案件信息表** — 案件 ID、操作员、单位、分类、时间
13. **目标情报表** — 所有调查结果的完整摘要
14. **保管链面板** — SHA-256 证据完整性哈希
15. **完成消息** — 案件 ID + 分类确认
## 🔧 故障排除
| 问题 | 解决方案 |
|-------|----------|
| `ModuleNotFoundError` | 在您的 venv 内运行 `pip install -r requirements.txt` |
| `Invalid phone number` | 包含国家代码:`+91`、`+1` 等 |
| API 密钥不起作用 | 检查 `.env` 文件是否与 `phone_tracker.py` 在同一目录下 |
| 无实时位置数据 | 免费 API 有速率限制 — 等待并重试,或添加更多 API 密钥 |
| IP 获取器不可访问 | 使用 ngrok(见上文)进行外部访问 |
| 地图未生成 | 确保已安装 `opencage` 包并设置了 API 密钥 |
| 端口被拒绝访问 | 使用大于 1024 的端口:`--grab-port 8888` |
| Truecaller 提示 "No public data" | Truecaller 需要登录 bearer token 才能获取完整结果 — 使用 Truecaller 应用程序进行手动查找 |
| SyncMe 返回标语作为名字 | "Always knowwho's calling" 是 SyncMe 的标语,不是真实姓名 — 已知限制 |
| 证据哈希显示为 "N/A" | 确保在计算哈希之前扫描已完成所有阶段 |
| `Address already in use` | 终止该端口上的进程:`lsof -ti:8888 \| xargs kill` |
## 📋 完整命令参考
```
usage: phone_tracker.py [-h] [--quick] [--skip-live] [--skip-osint]
[--skip-deep] [--case-id ID] [--officer NAME]
[--unit UNIT] [--classification LEVEL]
[--grab] [--grab-port PORT]
[--no-map] [--no-report] [--json-only]
[--output-dir DIR] [--version]
phone
PhoneTrackerPro v5.0.0 — Advanced Phone Intelligence & OSINT Framework
positional arguments:
phone Phone number (e.g., +919876543210 or 9876543210)
Scan Options:
--quick Quick mode: basic info + telecom only
--skip-live Skip live location (multi-API) detection
--skip-osint Skip OSINT platform probes
--skip-deep Skip deep OSINT (spam/breach/web)
Case Management:
--case-id ID Case/investigation ID (default: auto-UUID)
--officer NAME Operator / researcher name
--unit UNIT Team / department name
--classification LEVEL UNCLASSIFIED, RESTRICTED, CONFIDENTIAL, SECRET
(default: RESTRICTED)
IP Grabber:
--grab Launch IP Grabber link server
--grab-port PORT Port for IP Grabber server (default: 8888)
Report Options:
--no-map Skip Folium map generation
--no-report Skip HTML report generation
--json-only Only generate JSON report
--output-dir DIR Output directory (default: output/)
Other:
--version Show version and exit
-h, --help Show help message and exit
```
## 🏗️ 架构
```
phone_tracker.py (2650+ lines)
├── Imports & Config
│ ├── AuditLogger class (SHA-256 chain-of-custody)
│ ├── _audit() / _sha256() helpers
│ ├── BANNER, VERSION, CLASSIFICATION levels
│ └── API key loading from .env
├── class PhoneTrackerPro
│ ├── __init__() — 90+ instance vars, case management, forensic fields
│ ├── _log_evidence() — chain-of-custody logger
│ ├── parse_number() — E.164 parsing, validation
│ ├── get_basic_info() — carrier, country, timezone, HLR status
│ ├── display_basic_info() — CDR-style Rich table
│ ├── INDIA_CIRCLE_DB — 700+ prefix mapping
│ ├── detect_telecom_circle() — circle + city detection
│ ├── detect_live_location() — orchestrates 7 API sources
│ │ ├── _api_numverify()
│ │ ├── _api_abstractapi()
│ │ ├── _api_ipinfo()
│ │ ├── _api_vlr_msc()
│ │ ├── _api_phoneinfo()
│ │ ├── _api_mobiletracker()
│ │ └── _api_free_network()
│ ├── _consensus_vote() — weighted voting algorithm
│ ├── _display_live_location() — voting table + summary
│ ├── generate_ip_grabber() — Flask server + tracking page
│ ├── advanced_geolocate() — OpenCage + Nominatim
│ ├── run_osint() — orchestrates all platform probes
│ │ ├── _probe_whatsapp()
│ │ ├── _probe_telegram()
│ │ ├── _probe_truecaller_web() — 3 APIs + web + JSON
│ │ ├── _probe_eyecon()
│ │ ├── _probe_syncme()
│ │ ├── _probe_facebook()
│ │ ├── _probe_instagram()
│ │ ├── _probe_google()
│ │ ├── _check_india_upi()
│ │ ├── _probe_email_from_name()
│ │ ├── _probe_gravatar()
│ │ └── _probe_abstractapi_email()
│ ├── run_deep_osint()
│ │ ├── Spam DB checks
│ │ ├── _check_haveibeenpwned_style()
│ │ └── Web mentions scraping
│ ├── generate_map() — Folium with markers + heatmap
│ ├── to_dict() — metadata envelope with SHA-256 hash
│ ├── generate_html_report() — professional dark-themed report
│ ├── generate_json_report() — full JSON export
│ └── generate_reports() — orchestrates all report types
├── _print_summary() — Rich tables with case info + intel + hash
└── main() — argparse CLI with grouped options
```
## 📝 更新日志
| 版本 | 更改内容 |
|---------|---------|
| **v5.0.0** | 案件管理 (--case-id, --officer, --unit, --classification),带 SHA-256 保管链的 AuditLogger,JSON 中的元数据封装,带有分类横幅 + 法律声明 + 审计追踪的专业 HTML 报告,证据完整性哈希,持久化审计日志文件,CDR 式用户信息显示,取证字段 (HLR、IMSI 范围、MCC-MNC、网络状态) |
| **v4.1.0** | 使用分组选项全面重构 Argparse,API 状态面板,Truecaller 多方法探测 (3 个 API + Web),电子邮件猜测 + Gravatar 查找,--grab 先运行全面扫描再运行 IP 获取器,带有结语示例的简洁 --help |
| **v4.0.0** | 完全重写 — 8 阶段扫描,7-API 共识投票,带有 Flask + Rich 仪表板的 IP 获取器,OSINT 探测 (WhatsApp/Telegram/Truecaller/SyncMe/Eyecon/Facebook/Instagram/Google),深度 OSINT (垃圾邮件/泄露/网络),Folium 地图,HTML + JSON 报告,.env 支持 |
| **v3.0** | 多 API 实时定位,电信圈数据库,漫游检测 |
| **v2.0** | 基础 OSINT,地理定位,地图生成 |
| **v1.0** | 使用 phonenumbers 库进行初始手机号码查询 |
## ⚠️ 免责声明
**由 Vishal 用 ❤️ 制作 | PhoneTrackerPro v5.0.0**
标签:OSINT框架, Python, 二进制模式, 手机号追踪, 无后门, 网络侦查, 运行时操纵, 逆向工具, 隐私数据收集