G-BUZZ/aircraft-geofence-alert
GitHub: G-BUZZ/aircraft-geofence-alert
一个轻量级 Python 脚本,利用 OpenSky 公共 API 监控指定地理围栏内的飞机活动并可选地发送告警通知。
Stars: 0 | Forks: 0
# 飞机地理围栏警报
一个小型 Python 作品集项目,演示了如何将公开的飞机状态数据转化为注重隐私的地理围栏与警报工作流。
该脚本监控一个可配置的公共兴趣点,从 OpenSky Network API 检索附近的飞机状态数据,预估飞机是否可能进入选定半径范围内,并可选地通过 ntfy 发送通知。
这是一个教育性质的 OSINT / 数据自动化项目,而非用于实际操作的航空跟踪系统。
## 功能介绍
- 从公共 API 读取飞机状态数据
- 监控可配置的纬度/经度点
- 根据距离和高度过滤飞机
- 使用当前速度和航向预估最近接近点
- 在终端中打印结构化的警报信息
- 可选地发送 ntfy 通知
- 将私有配置保留在源代码之外
## 展示技能
- Python 脚本编写
- 公共 API 使用
- 地理空间过滤
- 基础轨迹估算
- 基于环境变量的配置
- 通知自动化
- 注重隐私的 OSINT 文档编写
- 防御性数据监控工作流设计
## 项目结构
```
.
├── aircraft_watch.py # Main monitoring script
├── run.sh # Safe local launcher
├── .env.example # Example configuration template
├── .gitignore # Keeps local secrets out of git
└── README.md # Project documentation
```
## 设置
克隆仓库:
```
git clone git@github.com:G-BUZZ/aircraft-geofence-alert.git
cd aircraft-geofence-alert
```
创建本地环境文件:
```
cp .env.example .env
```
编辑 `.env` 并配置一个公共或通用的兴趣点:
```
POINT_LAT=0.0000
POINT_LON=0.0000
FETCH_RADIUS_KM=120.0
ALERT_RADIUS_KM=3.0
LOOKAHEAD_MINUTES=10.0
```
可选的 ntfy 通知主题:
```
NTFY_TOPIC=your-private-random-ntfy-topic-here
```
请勿提交您真实的 `.env` 文件。
## 用法
使用以下命令运行脚本:
```
./run.sh
```
或者手动导出变量:
```
POINT_LAT=0.0000 POINT_LON=0.0000 ALERT_RADIUS_KM=3 python3 aircraft_watch.py
```
## 配置
| 变量 | 描述 | 示例 |
|---|---|---|
| `POINT_LAT` | 监控点的纬度 | `0.0000` |
| `POINT_LON` | 监控点的经度 | `0.0000` |
| `FETCH_RADIUS_KM` | 用于获取飞机数据的半径 | `120.0` |
| `ALERT_RADIUS_KM` | 围绕监控点的警报半径 | `3.0` |
| `LOOKAHEAD_MINUTES` | 线性预测窗口 | `10.0` |
| `MIN_ALTITUDE_M` | 最低高度过滤器 | `0.0` |
| `MAX_ALTITUDE_M` | 最高高度过滤器 | `12000.0` |
| `NTFY_TOPIC` | 用于通知的可选 ntfy 主题 | `your-private-random-topic` |
## 隐私与安全
本项目仅用于教育和作品展示目的。
请仅使用公共或通用的兴趣点。请勿发布私人住宅坐标、工作场所坐标、通知主题、包含敏感配置值的屏幕截图,或与私人地点相关联的实时警报。
通知主题是从 `NTFY_TOPIC` 环境变量中读取的,因此源代码中不会存储任何私人主题。如果使用 ntfy,请选择一个较长的随机主题并将其视为机密信息。
## 限制
最近接近点估算仅基于当前报告的位置、速度和航向。它们是简化的线性估算,未考虑飞行计划、空中交通管制指令、转弯、高度变化、信号延迟、数据缺失、数据不完整或 API 更新延迟。
本项目不得用于航空安全、操作跟踪、监视、定位或决策制定。
## 作品集说明
本仓库旨在展示一个小型的防御性 OSINT 和数据自动化工作流。它侧重于公共数据的负责任使用、本地配置维护、可复现性以及注重隐私的文档编写。
## 许可证
本项目采用 MIT 许可证发布。
## API 使用与条款
本项目使用公开的飞机状态数据,仅用于教育和作品展示目的。
用户有责任尊重其使用的数据提供方的条款,包括任何速率限制、署名要求、非商业限制以及操作用途限制。
本项目不旨在用于商业用途、航空决策制定、实时操作跟踪或安全关键型监控。
标签:DNS解析, ESC4, GitHub, HTTP/HTTPS抓包, ntfy推送, OpenSky API, OSINT, Portfolio, Python, 个人作品集, 公开飞行数据, 地理围栏, 地理空间过滤, 实时处理, 开源项目, 态势感知, 数字取证, 数据自动化, 无后门, 环境变量配置, 网络安全, 网络安全防御, 自动化脚本, 航空数据, 航空监控, 逆向工具, 通知自动化, 隐私保护, 飞行轨迹预估