全源情报融合仪表板——将WiFi、蜂窝网络、CCTV、ADS-B、轨道及SDR数据源统一整合到单一战术地图中。仅限安全研究用途。
一个用于安全研究和训练的全频谱、全源信号情报融合平台。Signal OPS 将数十个开放采集源——WiFi/蓝牙/蜂窝基站数据库、互联网暴露扫描器、摄像头索引、ADS-B 航班数据源、卫星 TLE 跟踪以及 SDR/APRS 网络——整合到一个战术地图和 Flask API 中,将射频、蜂窝、空域、轨道和监控领域关联到一个实时作战画面中,并可选地叠加 AI 辅助威胁摘要。
几乎所有数据源都是可选的。如果未设置密钥,该获取器将被优雅跳过——免费数据源(OpenStreetMap、Insecam、ipinfo.io、ADS-B、CelesTrak、KiwiSDR)无需任何密钥即可工作。
主地图将 WiFi、蓝牙、蜂窝、摄像头和飞机图层融合在同一区域上,并提供 OSM 摄像头、ALPR/Flock 网络和警察分局的可切换叠加层。


| 监控数据源 | CCTV 发现 |
|---|---|
![]() | ![]() |
监控列表对每个设备进行评分(例如 "可疑度 35/100:未认证摄像头"),并合并来自 WiGLE、Insecam 和 OSM 的路由器、电视和暴露摄像头。CCTV 视图按数据源分组显示发现的摄像头,并附带每个摄像头的风险及实时/元数据状态。
| 蜂窝基站热力图 | SDR / APRS 网络 |
|---|---|
![]() | ![]() |
核心依赖:
flask
requests
python-dotenv
推荐(启用完整功能——缓存、速率限制、卫星传播):
cachetools # 有界地理缓存(缺失时回退到无界字典)
flask-limiter # 请求速率限制
sgp4 # /api/satellites 的卫星位置传播
google-genai # Gemini AI 分析(仅在使用 GEMINI_API_KEY 时需要)
安装全部内容:
pip install flask requests python-dotenv cachetools flask-limiter sgp4 google-genai
git https://github.com/emrekybs/signalops.git
unzip signalops-v1.zip
python -m venv venv
source venv/bin/activate # Windows: venv\Scripts\activate
pip install -r requirements.txt
如果没有 requirements.txt,请使用上方“系统要求”部分中的 pip install 命令行。
复制示例文件并填写你拥有的密钥:
cp .env.example .env
然后打开 .env 并粘贴你的 API 密钥。每个密钥都是可选的——将任意行留空(或删除)即可禁用该数据源。请参阅下一节了解每个密钥的用途及获取位置。
如需即时、离线的摄像头和分局查询,请将这些文件放在 data/ 目录下(或将 DATA_DIR 指向其他位置):
data/CAMERAS_WITH_NETWORK_DATA.geojson # 点要素(摄像头)
data/police_precincts_usa.geojson # 面要素(美国分局)
data/camera_networks.json # 网络共享元数据
data/tiles/{z}/{x}/{y}.json # 可选的分块摄像头数据集
如果这些文件不存在,应用将自动回退到实时 OpenStreetMap Overpass 查询。
python app_v2.py
服务器启动于 **http://0.0.0.0:8080**。在浏览器中打开 http://localhost:8080。
随时检查哪些提供商已成功加载:
GET /api/status # 有效 vs. 缺失的密钥
GET /api/debug # 每个密钥的布尔值 + 实时 WiGLE 认证测试
在项目根目录创建 .env 文件。以下是应用读取的完整列表。
| 变量 | 默认值 | 描述 |
|---|
以下数据源无需任何配置:OpenStreetMap Overpass、Insecam、EarthCam、ipinfo.io、ADS-B(adsb.fi / OpenSky)、CelesTrak TLE、SatNOGS 和 KiwiSDR。
.env.example将此保存为仓库中的 .env.example,以便其他人了解格式:
# ── Signal OPS 环境 ──
# 每个密钥都是可选的。留空即可禁用该数据源。
# WiFi / 蓝牙 / 蜂窝
WIGLE_API_NAME=
WIGLE_API_TOKEN=
OPENCELLID_API_KEY=
# 互联网暴露扫描器
SHODAN_API_KEY=
CENSYS_API_ID=
CENSYS_API_SECRET=
ZOOMEYE_API_KEY=
FOFA_EMAIL=
FOFA_API_KEY=
HUNTERHOW_API_KEY=
NETLAS_API_KEY=
LEAKIX_API_KEY=
CRIMINALIP_API_KEY=
BINARYEDGE_API_KEY=
# 摄像头与 IP 信誉
WINDY_API_KEY=
ABUSEIPDB_API_KEY=
# 飞机与业余无线电
ADSB_API_KEY=
APRS_FI_KEY=
# AI 分析
GEMINI_API_KEY=
GEMINI_MODEL=gemini-2.0-flash
# 应用配置
DATA_DIR=./data
FLASK_SECRET_KEY=
以下为公开的部分端点(完整列表请参阅源代码):
| 变量 | 提供商 | 获取密钥位置 |
|---|
WIGLE_API_NAME | WiGLE(WiFi/BT/蜂窝)— 用户名 | https://wigle.net/account |
WIGLE_API_TOKEN | WiGLE — API 令牌 | https://wigle.net/account |
OPENCELLID_API_KEY | OpenCellID(蜂窝基站) | https://opencellid.org |
SHODAN_API_KEY | Shodan(暴露 / 摄像头) | https://account.shodan.io |
CENSYS_API_ID | Censys — API ID | https://search.censys.io/account/api |
CENSYS_API_SECRET | Censys — API 密钥 | https://search.censys.io/account/api |
ZOOMEYE_API_KEY | ZoomEye | https://www.zoomeye.org/profile |
FOFA_EMAIL | FOFA — 账户邮箱 | https://fofa.info |
FOFA_API_KEY | FOFA — API 密钥 | https://fofa.info |
HUNTERHOW_API_KEY | Hunter.how | https://hunter.how |
NETLAS_API_KEY | Netlas | https://netlas.io |
LEAKIX_API_KEY | LeakIX | https://leakix.net |
CRIMINALIP_API_KEY | CriminalIP | https://www.criminalip.io |
BINARYEDGE_API_KEY | BinaryEdge | https://www.binaryedge.io |
WINDY_API_KEY | Windy Webcams | https://api.windy.com/keys |
ABUSEIPDB_API_KEY | AbuseIPDB(IP 信誉) | https://www.abuseipdb.com/account/api |
ADSB_API_KEY | adsb.fi(可选;无密钥也可工作) | https://adsb.fi |
APRS_FI_KEY | APRS.fi(业余无线电电台) | https://aprs.fi/page/api_key |
GEMINI_API_KEY | Google Gemini(AI 分析) | https://aistudio.google.com/apikey |
GEMINI_MODEL | gemini-2.0-flash | 用于分析的 Gemini 模型 |
DATA_DIR | ./data | 本地 GeoJSON/JSON 数据集目录 |
FLASK_SECRET_KEY | 每次运行随机 | Flask 会话密钥;生产环境中请设置固定值 |
| 端点 | 用途 |
|---|
GET /nearby?lat=&lon=&mode= | 围绕某点的统一 RF/OSINT 扫描 |
GET /api/cctv?lat=&lon= 或 ?country= | 按位置或国家发现摄像头 |
GET /api/search?type=&query= | 按 SSID、IP、位置或国家搜索 |
POST /api/analyze | 设备列表的 AI 摘要 |
GET /api/ip-intel?ip= | 多源 IP 威胁情报 |
GET /api/adsb?lat=&lon=&radius= | 实时飞机 + 紧急检测 |
GET /api/satellites?categories= | 卫星位置(TLE + SGP4) |
GET /api/gps-jamming?lat=&lon= | 来自 ADS-B 的 GPS 干扰热力图 |
GET /api/sdr/kiwisdr | 公共 KiwiSDR 接收器列表 |
GET /api/aprs/stations?lat=&lon= | 附近的 APRS 电台 |
GET/POST /api/watchlist | 管理跟踪标识符 |
POST /api/watchlist/check | 对照监视列表检查设备列表 |
GET /api/status · GET /api/debug | 提供商健康状态 / 密钥诊断 |