GhostTrack 在 GitHub 上拿到了 1 万颗星。我一开始以为这是个挺有料的实战工具,打开源码发现整个项目就一个文件。
GhostTR.py,315 行,依赖只有 requests 和 phonenumbers 两个包。三个功能模块:
- IP Tracker — 输入 IP 地址,返回地理位置、ISP、时区等 20+ 字段
- Phone Number Tracker — 输入电话号码,返回运营商、归属地、号码类型
- Username Tracker — 输入用户名,批量检测 24 个社交平台是否注册
项目卡片
- 项目:GhostTrack
- 状态:v2.2 / 10.7k Stars / 最后提交 2024-01-11
- 一句话判断:OSINT 入门演示工具,学习价值高于实战价值
三个模块拆开看
IP 追踪:靠 ipwho.is 免费 API
IP Tracker 的实现没什么花活 — 调用 ipwho.is 的免费 REST API,拿到 JSON 后逐字段打印。
req_api = requests.get(f"http://ipwho.is/{ip}")
ip_data = json.loads(req_api.text)
返回 20+ 个字段:国家、城市、经纬度、ASN、ISP、时区、邮编、首都、边境国家、国旗 emoji,还有目标时区的当前时间。ipwho.is 这个免费 API 没有频率限制,数据来源是 IP2Location。
但代码有一个明显的精度问题。在第 59-60 行,经纬度被强制转为 int:
lat = int(ip_data['latitude'])
lon = int(ip_data['longitude'])
这意味着原本可能是 40.7128, -74.0060(纽约)的坐标,变成了 40, -74,Google Maps 链接打开后定位偏差几十到上百公里。对于"追踪"工具来说,这是硬伤。
电话号码追踪:phonenumbers 库的包装
Phone Tracker 用的是 Google 的 phonenumbers Python 库,这个库本身很成熟,能解析全球号码格式、判断运营商和归属地。
parsed_number = phonenumbers.parse(User_phone, "ID")
jenis_provider = carrier.name_for_number(parsed_number, "en")
location = geocoder.description_for_number(parsed_number, "id")
默认地区设为 "ID"(印度尼西亚),说明作者主要面向印尼用户。如果你输入中国号码 +86138xxxx,也能正常解析出运营商和省份。
不过需要明确:它做的是号码元数据解析,不是实时定位。输出的是号码注册归属的运营商信息,跟"追踪某人当前位置"完全是两回事。
用户名追踪:HTTP 状态码猜的
Username Tracker 的逻辑最糙 — 拼接 24 个社交平台的 URL,发 GET 请求,返回 200 就当"找到了":
for site in social_media:
url = site['url'].format(username)
response = requests.get(url)
if response.status_code == 200:
results[site['name']] = url
这个方案的问题很大。大部分社交平台在用户名不存在时也返回 200(页面里显示"未找到"),所以误报率极高。真正可靠的用户名检测需要解析页面内容、处理登录墙、甚至用平台专用 API。
列表里还包含 Periscope(2021 年已关停)和 StumbleUpon(2018 年已关停)这种已失效平台,进一步拉低了实用性。
值不值得试
这类工具我一般先看失败处理,不先看首页口号。GhostTrack 的错误处理基本没有 — 网络异常、API 返回异常、号码格式不对,都会直接抛 traceback。所以我的判断是:
- OSINT 入门教学 — 315 行代码覆盖了 IP 地理定位、号码元数据、社交平台关联三个经典方向,每个模块都可以拆开当教材看
- 快速查 IP 元数据 — ipwho.is 这个 API 本身好用,只是工具套了个壳
- Termux 演示 — 依赖极简,手机上也能跑
不适合上生产:用户名检测靠 HTTP 200 猜,误报率极高;经纬度做了 int 截断丢失精度;最后提交停在 2024 年 1 月,Periscope 和 StumbleUpon 这种已关停平台都没清理。
快速上手
git clone https://github.com/HunxByts/GhostTrack.git
cd GhostTrack
pip3 install -r requirements.txt
python3 GhostTR.py
Python 3 + 两个 pip 包,Linux 和 Termux 都能跑。
如果真的要干 OSINT 活,有更成熟的选择:Sherlock 做用户名检测(会解析页面内容)、OSINT Framework 做综合侦察、SpiderFoot 做自动化信息关联。GhostTrack 更像一个"第一个 OSINT 工具"的教学项目。
引用链接
[1] GhostTrack: https://github.com/HunxByts/GhostTrack