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, 二进制模式, 手机号追踪, 无后门, 网络侦查, 运行时操纵, 逆向工具, 隐私数据收集