katnino/Senka

GitHub: katnino/Senka

Senka 是一个全球实时地理空间情报聚合控制面板,将航空、海事、卫星、地震、冲突及 CCTV 等数十个开源数据流统一呈现在交互式地图上。

Stars: 1 | Forks: 0

S E N K A [选择性动态监测]

全球动态监控 实时地理空间情报平台

//实验性//早期开发中//

Screenshot 2026-06-25 at 08 59 00

**Senka** 是早期版本 OSINT (开源情报)工具 ShadowBroker 的塞尔维亚语重构克隆版。与原项目不同,Senka 不会生成或渲染虚假数据。从本质上讲,该工具是一个实时地理空间情报控制面板,从数十个来源收集数据,并在夜间操作风格的界面中展示。它追踪飞机、船舶、卫星、地震、冲突区域、CCTV 网络、GPS 干扰以及当前的地缘政治事件,并且所有内容都是实时更新的。 该平台基于 **Next.js**、**MapLibre GL**、**FastAPI** 和 **Python** 构建,专为希望在一个地方查看全球活动的分析师、研究人员和爱好者设计。 本项目为实验性项目,目前仍在开发阶段。
Screenshot 2026-06-25 at 09 00 52 Screenshot 2026-06-25 at 09 02 38
Screenshot 2026-06-25 at 09 01 40 Screenshot 2026-06-25 at 09 00 33
## 功能 ### 航空追踪 - **商业航班** — 通过 OpenSky Network 获取实时位置(约 5,000+ 架航空器) - **私人飞机** — 单独追踪轻型 GA、涡桨飞机和商务喷气式飞机 - **私人喷气式飞机** — 追踪高净值人士的喷气式飞机并识别所有者身份 - **军用航班** — 通过 adsb.lol 的军用 endpoint 追踪空中加油机、ISR、战斗机和运输机 - **航迹累积** — 为所有被追踪的航空器保留持久航迹 - **盘旋模式检测** — 自动标记正在盘旋的航空器(总转弯角度 >300°) - **航空器分类** — 精确的 SVG 图标形状:客机、涡桨飞机、商务喷气式飞机、直升机 - **地面检测** — 低于 100ft AGL 的航空器显示为灰色图标 ### 海上追踪 - **AIS 船舶流** — 通过 aisstream.io WebSocket 追踪 25,000+ 艘船舶(实时) - **船舶分类** — 货船、油轮、客船、游艇和军用船舶类型,配有彩色图标 - **航母打击群追踪** — 追踪所有 11 艘活跃的美国海军航母,位置基于 OSINT 估算 - 自动收集 GDELT 新闻,提供有关航母动向的情报 - 50+ 地理区域到坐标的映射 - 位置缓存在磁盘上,并在 UTC 时间 00:00 和 12:00 自动更新 - **邮轮和客船** — 追踪邮轮和渡轮 - **聚合视图** — 在低缩放级别下船舶会聚合并显示数量标签,放大时自动散开 ### 太空与卫星 - **轨道追踪** — 通过 N2YO API 获取卫星实时位置 - **按任务类型分类** — 彩色任务标识:军用侦察(红色)、SAR(青色)、SIGINT(白色)、导航(蓝色)、早期预警(洋红色)、商业成像(绿色)、空间站(金色) ### 地缘政治与冲突 - **全球事件** — GDELT 冲突事件展示(过去 8 小时内,约 1,000 起事件) - **乌克兰前线** — 来自 DeepState Map 的 GeoJSON 战线 - **SIGINT/RISINT 新闻源** — 实时聚合来自多个专注于情报数据的来源的 RSS - **区域档案** — 在地图上任意位置右键点击即可获取: - 国家概况(人口、首都、语言、货币、面积) - 国家元首和政府类型(Wikidata SPARQL) - 带有缩略图的本地 Wikipedia 摘要 ### 监控摄像头 - **CCTV 网络** — 2,000+ 个交通摄像头,来源包括: - 🇬🇧 Transport for London JamCams - 🇺🇸 Austin, TX TxDOT - 🇺🇸 NYC DOT - 支持自定义 URL 输入 - **源渲染** — 自动检测并显示视频、MJPEG、HLS、embed、卫星切片和图像源 - **地图聚合视图** — 绿色圆点聚合并显示数量标签,缩放时散开 ### 信号情报 - **GPS 干扰检测** — 实时分析航空器的 NAC-P(Navigation Accuracy Category)值 - 基于网格的聚合以识别干扰区域 - 红色叠加方块带有“GPS JAM XX%”的严重程度标签 - **无线电拦截面板** — 用于追踪通信的扫描接口 ### 附加数据 - **地震 (24h)** — USGS 实时地震数据源,带有与震级成比例的标记 - **昼夜循环** — 太阳终结线叠加层显示全球的白天/黑夜区域 - **全球市场行情** — 实时金融市场指数(可最小化) - **测量工具** — 在地图上测量点到点的距离和方位角 ## 架构 ``` ┌──────────────────────────────────────────────────────┐ │ FRONTEND (Next.js) │ │ │ │ ┌─────────────┐ ┌──────────┐ ┌─────────────────┐ │ │ │ MapLibre GL │ │ Tok vesti│ │ Kontrolni paneli│ │ │ │ 2D WebGL │ │ SIGINT │ │ Slojevi/Filteri │ │ │ │ Render mape │ │ Intel │ │ Tržišta/Radio │ │ │ └──────┬──────┘ └────┬─────┘ └────────┬────────┘ │ │ └──────────────┼─────────────────┘ │ │ │ REST API (15s brzo / 60s) │ ├────────────────────────┼─────────────────────────────┤ │ BACKEND (FastAPI) │ │ │ │ │ ┌─────────────────────┼─────────────────────────┐ │ │ │ Dobavljač podataka (Planer) │ │ │ │ ┌──────────┬──────────┬──────────┬─────────┐ │ │ │ │ │ OpenSky │ adsb.lol │ N2YO │ USGS │ │ │ │ │ │ Letovi │ Vojni │ Sateliti │ Potresi │ │ │ │ │ ├──────────┼──────────┼──────────┼─────────┤ │ │ │ │ │ AIS WS │ Nosači │ GDELT │ CCTV │ │ │ │ │ │ Brodovi │ Praćenje │ Sukobi │ Kamere │ │ │ │ │ ├──────────┼──────────┼──────────┼─────────┤ │ │ │ │ │DeepState │ RSS │ Regija │ GPS │ │ │ │ │ │ Front │ Intel │ Dosije │Ometanje │ │ │ │ │ └──────────┴──────────┴──────────┴─────────┘ │ │ │ └───────────────────────────────────────────────┘ │ └──────────────────────────────────────────────────────┘ ``` ## 数据源与 API | 来源 | 数据 | 更新频率 | 是否需要 API 密钥 | |---|---|---|---| | [OpenSky Network](https://opensky-network.org) | 商业和私人航班 | ~60s | 可选(匿名,受限) | | [adsb.lol](https://adsb.lol) | 军用飞机 | ~60s | 否 | | [aisstream.io](https://aisstream.io) | 船舶 AIS 位置 | 实时 WebSocket | **是** | | [N2YO](https://www.n2yo.com) | 卫星轨道位置 | ~60s | **是** | | [USGS Earthquake](https://earthquake.usgs.gov) | 全球地震事件 | ~60s | 否 | | [GDELT Project](https://www.gdeltproject.org) | 全球冲突事件 | ~6h | 否 | | [DeepState Map](https://deepstatemap.live) | 乌克兰前线 | ~30min | 否 | | [Transport for London](https://api.tfl.gov.uk) | 伦敦 CCTV JamCams | ~5min | 否 | | [TxDOT](https://its.txdot.gov) | 德克萨斯州奥斯汀交通摄像头 | ~5min | 否 | | [NYC DOT](https://webcams.nyctmc.org) | 纽约市交通摄像头 | ~5min | 否 | | [RestCountries](https://restcountries.com) | 国家概况数据 | 按需(缓存 24h) | 否 | | [Wikidata SPARQL](https://query.wikidata.org) | 国家元首数据 | 按需(缓存 24h) | 否 | | [Wikipedia API](https://en.wikipedia.org/api) | 地点摘要和航空器图片 | 按需(已缓存) | 否 | | [CARTO Basemaps](https://carto.com) | 深色地图切片 | 持续 | 否 | #### 前置条件 - **Node.js** 18+ 和 **npm** - **Python** 3.10+ 以及 `pip` - 以下服务的 API 密钥:`aisstream.io`、`n2yo.com`(以及可选的 `opensky-network.org`、`lta.gov.sg`) ### 安装说明 ``` # 克隆 repository git clone https://github.com/katnino/senka.git cd senka # backend 设置 cd backend python -m venv venv venv\Scripts\activate # Windows # source venv/bin/activate # macOS/Linux pip install -r requirements.txt # 使用您的 API key 创建 .env echo "AISSTREAM_API_KEY=your_key_here" >> .env echo "N2YO_API_KEY=your_key_here" >> .env echo "OPENSKY_USERNAME=your_user" >> .env echo "OPENSKY_PASSWORD=your_pass" >> .env # frontend 设置 cd ../frontend npm install ``` ### 运行 ``` # 从 frontend 目录 — 同时运行 frontend 和 backend npm run dev ``` 这将启动: - **Next.js** 前端,地址为 `http://localhost:3000` - **FastAPI** 后端,地址为 `http://localhost:8000` ## 数据层 所有图层均可通过左侧面板独立开启/关闭: | 图层 | 默认状态 | 描述 | |---|---|---| | 商业航班 | ✅ 开启 | 航空公司、货机、GA 航空器 | | 私人飞机 | ✅ 开启 | 非商业性质的私人航空器 | | 私人喷气式飞机 | ✅ 开启 | 高价值商务喷气式飞机及所有者信息 | | 军用航班 | ✅ 开启 | 军用和国家航空器 | | 重点追踪航空器 | ✅ 开启 | 特殊观察列表 | | 卫星 | ✅ 开启 | 按任务类型分类的轨道设施 | | 航母 / 军用 / 货船 | ✅ 开启 | 海军航母、货轮、油轮 | | 民用船舶 | ❌ 关闭 | 游艇、渔业、休闲船只 | | 邮轮 / 客船 | ✅ 开启 | 邮轮和渡轮 | | 地震 (24h) | ✅ 开启 | USGS 地震事件 | | CCTV 网络 | ❌ 关闭 | 监控摄像头网络 | | 乌克兰前线 | ✅ 开启 | 实时战线位置 | | 全球事件 | ✅ 开启 | GDELT 冲突事件 | | GPS 干扰 | ✅ 开启 | NAC-P 降级区域 | | 昼夜循环 | ✅ 开启 | 太阳终结线叠加层 | ## 性能 该平台针对海量实时数据进行了优化: - **Gzip 压缩** — API 数据压缩率约 92%(11.6 MB → 915 KB) - **ETag 缓存** — `304 Not Modified` 响应跳过了冗余的 JSON 解析 - **Viewport 裁剪** — 仅渲染位于可见地图边界内的对象(+20% 缓冲) - **聚合渲染** — 船舶、CCTV 和地震利用 MapLibre 的集群功能来减少对象数量 - **Viewport 延迟更新** — 300ms 防抖防止在平移/缩放期间进行不必要的 GeoJSON 重建 - **位置插值** — 在数据刷新之间进行 10 秒的动画插值 - **React.memo** — 对性能消耗较大的组件进行包裹,防止不必要的重新渲染 - **坐标精度** — Lat/lng(经纬度)四舍五入至 5 位小数(约 1 米),以减小 JSON 体积 ## 项目结构 ``` senka/ ├── backend/ │ ├── main.py # FastAPI aplikacija, midlver, API rute │ ├── carrier_cache.json # Trajne OSINT pozicije nosača │ ├── cctv.db # SQLite baza CCTV kamera │ └── services/ │ ├── data_fetcher.py # Glavni planer: svi izvori podataka │ ├── ais_stream.py # AIS WebSocket klijent (25K+ plovila) │ ├── carrier_tracker.py # OSINT pratioc pozicija nosača │ ├── cctv_pipeline.py # Unos CCTV kamera sa više izvora │ ├── geopolitics.py # GDELT + ukrajinske linije fronta │ ├── region_dossier.py # Intel države/grada na desni klik │ ├── radio_intercept.py # Integracija skenerskog radio izvora │ ├── network_utils.py # HTTP klijent sa curl rezervom │ └── api_settings.py # Upravljanje API ključevima │ ├── frontend/ │ ├── src/ │ │ ├── app/ │ │ │ └── page.tsx # Glavni panel: stanje, upitivanje, raspored │ │ └── components/ │ │ ├── MaplibreViewer.tsx # Jezgro mape: 2.000+ redova, svi GeoJSON slojevi │ │ ├── NewsFeed.tsx # SIGINT izvor + paneli detalja entiteta │ │ ├── WorldviewLeftPanel.tsx # Prekidači podataka │ │ ├── WorldviewRightPanel.tsx # Panel za pretragu i filtere │ │ ├── FilterPanel.tsx # Osnovni filteri podataka │ │ ├── AdvancedFilterModal.tsx # Filteri aerodrom/država/vlasnik │ │ ├── MapLegend.tsx # Dinamička legenda sa svim ikonama │ │ ├── MarketsPanel.tsx # Tiker globalnih finansijskih tržišta │ │ ├── RadioInterceptPanel.tsx # Radio panel u skenerskom stilu │ │ ├── FindLocateBar.tsx # Traka za pretragu/lokalizaciju │ │ ├── SettingsPanel.tsx # Podešavanja aplikacije │ │ ├── ScaleBar.tsx # Indikator razmere mape │ │ ├── WikiImage.tsx # Wikipedia slike │ │ └── ErrorBoundary.tsx # Omot za oporavak nakon pada │ └── package.json ``` ## 环境变量 在 `backend/` 目录下创建 `.env` 文件: ``` # 必需 AISSTREAM_API_KEY=your_aisstream_key # Praćenje pomorskih plovila N2YO_API_KEY=your_n2yo_key # Podaci o pozicijama satelita # 可选(提升数据质量) OPENSKY_CLIENT_ID=your_opensky_client_id # Viši limiti za podatke o letovima OPENSKY_CLIENT_SECRET=your_opensky_secret ``` ## ⚠️ 免责声明 这是一个**教育和研究工具**,完全基于公开可用的开源情报 (OSINT) 数据。不使用任何机密、受限或保密的数据源。航母的位置是基于公开报道的估算值。用户界面的军事外观纯属美学设计。 **请勿将此工具用于任何操作、军事或情报目的。** 本项目为实验性项目,目前仍在开发阶段且尚不完整。 ## 许可证 MIT 关于数据使用的限制,请参阅各个 API 提供商的具体使用条款。

IN MEMORIAM Miroslav Lazanski 2026

标签:AV绕过, ESC4, FastAPI, MITM代理, OSINT, 地理空间情报, 自动化攻击, 逆向工具