Yashrevive/IP_Threat_Tracker
GitHub: Yashrevive/IP_Threat_Tracker
一款 Python 命令行工具,通过整合 IP-API 和 AbuseIPDB 帮助用户快速查询 IP 地址的地理定位信息与威胁信誉评分。
Stars: 0 | Forks: 0
# IP 威胁追踪器
## 描述
IP Threat Tracker 是一款使用 Python 编写的命令行网络安全工具,旨在帮助用户调查 IP 地址,并基于公开可用的威胁情报数据评估其信誉。
该程序接受 IP 地址和时间范围作为命令行参数。它首先使用 Python 内置的 `ipaddress` 模块验证提供的 IP 地址。验证通过后,它会使用 IP-API 服务收集地理定位和网络信息。接着,它会查询 AbuseIPDB 以确定该 IP 地址是否因恶意活动被举报过,并根据滥用置信度分数计算其威胁等级。
该工具为用户提供了有关 IP 地址的重要信息,包括其位置、互联网服务提供商 (ISP)、自治系统编号 (ASN)、滥用置信度分数、举报历史以及最近一次滥用举报的日期。
本项目是作为 CS50 的 Introduction to Programming with Python 的结业课题而开发的,展示了命令行参数、API 集成、异常处理、环境变量、JSON 处理和模块化程序设计等概念。
## 功能
* 验证 IPv4 和 IPv6 地址
* 获取 IP 地址的地理定位信息
* 显示 ISP 和 ASN 详情
* 使用 AbuseIPDB 检查 IP 信誉
* 将 IP 地址分类为安全、可疑或恶意
* 显示滥用举报统计数据
* 处理无效输入和网络相关错误
* 使用环境变量保护 API 凭据
## 使用技术
* Python 3
* Requests
* Python-dotenv
* IP-API
* AbuseIPDB
## 安装说明
克隆代码仓库:
```
git clone
cd
```
安装所需的依赖项:
```
pip install -r requirements.txt
```
在项目目录中创建一个 `.env` 文件:
```
my_abuseipdb_key=YOUR_API_KEY_HERE
```
将 `YOUR_API_KEY_HERE` 替换为你的 AbuseIPDB API 密钥。
## 用法
使用以下命令运行程序:
```
python ip_tracker.py
```
示例:
```
python ip_tracker.py 8.8.8.8 30
```
### 参数
| 参数 | 描述 |
| --------------- | ------------------------------------------------------ |
| IP_ADDRESS | 要调查的 IP 地址 |
| MAX_AGE_IN_DAYS | 要分析的 AbuseIPDB 举报天数 (1–365) |
## 示例输出
```
IP: 8.8.8.8
Location: Mountain View, California, United States
Internet Service Provider: Google LLC
Autonomous System Number: AS15169
Abuse Score = 0/100 (Safe)
```
如果某个 IP 地址之前被举报过:
```
Abuse Score = 82/100 (Malicious)
Total number of reports = 145
Last reported date = 2026-05-12
```
## 项目结构
```
.
├── ip_tracker.py
├── README.md
├── requirements.txt
├── .env
└── test_project.py
```
**注意:** `.env` 文件被有意排除在代码仓库之外,因为它包含私有的 API 凭据。
## 设计选择
关键的设计决策之一是使用 Python 的 `ipaddress` 模块而不是正则表达式来进行 IP 验证。这种方法更可靠,并且同时支持 IPv4 和 IPv6 地址。
本项目通过 `python-dotenv` 包使用环境变量来安全地存储 API 凭据。这可以防止敏感信息被硬编码到源代码中或上传到 GitHub。
选择两个独立的 API 是为了提供互补的信息。IP-API 提供地理定位和网络详情,而 AbuseIPDB 提供威胁情报和滥用举报数据。结合这些来源,用户可以通过单条命令获取有关 IP 地址的技术和安全相关信息。
## 未来改进
当前版本的 IP Threat Tracker 侧重于收集有关 IP 地址的威胁情报和信誉信息。未来版本可能包含以下附加功能:
* 将扫描结果导出为 JSON 或 CSV 文件
* 支持同时扫描多个 IP 地址
* 添加颜色编码的终端输出
* 集成更多威胁情报源
* 构建图形用户界面 (GUI)
* 生成自动化威胁报告
* 添加直接从应用程序内部向 AbuseIPDB 举报恶意 IP 地址的功能
* 为之前扫描过的 IP 地址添加信誉历史追踪功能
## 作者
**Yash Kumar Kriplani**
IP Threat Tracker 是我独立开发的第一个网络安全项目。该项目的目标是将 IP 情报收集和威胁信誉分析结合到一个简单的命令行工具中,帮助用户快速调查潜在的可疑 IP 地址。
标签:API集成, IP查询, Python, 可观测性, 威胁情报, 字符串匹配, 实时处理, 开发者工具, 无后门