BuriXon-code/Termux-WiFi-map

GitHub: BuriXon-code/Termux-WiFi-map

基于 Termux 的 Android 端 Wi-Fi 扫描与地理标记工具,无需 root 权限即可采集并导出无线网络数据。

Stars: 1 | Forks: 0

# Termux-WiFi-map ## 关于 Termux-WiFi-map 是一个专为 Android 上 Termux 环境设计的综合 Bash 实用工具,用于扫描附近的 Wi-Fi 接入点 (AP),记录其元数据,并可选择使用 Termux 位置提供商进行地理定位。它面向网络爱好者、安全研究人员以及任何需要在移动设备上使用轻量级、免 root Wi-Fi 映射工具的用户。 本 README 说明了如何安装、运行和配置该工具,详细解释了模式和选项,并描述了输出格式和内部行为。 ## 功能特性 - 通过 `termux-wifi-scaninfo` 进行被动 Wi-Fi 扫描。 - 通过 `termux-location` 集成 GPS/位置服务(支持提供商:gps, network, passive)。 - 以多种格式保存/导出扫描结果:JSON(单行)、pretty JSON (PJSON)、JSONL(换行符分隔的 JSON)、CSV、KML。 - 缓存收集到的 AP 以供稍后导出或分析(默认路径:$HOME/.cache/BuriXon-code/wifi_scan_cache.jsonl)。 - 支持可调延迟的连续扫描模式(支持 "none" 表示 0秒 / 最快速度)。 - 振动反馈控制(可禁用)。 - 文件验证模式:检查已保存文件的结构正确性。 - 健壮的错误处理:自动 Termux API 重启例程(除非配置为退出)。 - 轻量级:使用 POSIX/Bash 编写,依赖 Termux 实用工具 —— 无需 root。 ## 更多信息: - 完整文档与示例:[网站](https://burixon.dev/projects/Termux-WiFi-map/) ## 快速概览 - **运行器** (`--run`):触发 Wi-Fi 扫描,将结果追加到内部缓存 (JSONL)。可运行一次或连续循环运行。 - **保存器** (`--save`):读取缓存并将其写入选定的导出格式/文件。 - **缓存管理器** (`--cache`):查看、计数或清除内部缓存。 - **验证器** (`--check`):检查提供文件的结构/格式错误。 - **别名** (`--check`):管理动态别名/快捷方式。 - **辅助功能**:版本信息、关于信息和帮助输出。 ## 输出格式 - **JSON** — 单行 JSON 对象或数组(紧凑)。 - **PJSON** — 漂亮打印的、人类友好的 JSON(便于检查)。 - **JSONL** — 换行符分隔的 JSON;每行是一个 JSON 对象(适合流式传输/增量写入)。 - **CSV** — 展平的逗号分隔值,用于电子表格。 - **KML** — 适用于 Google Earth / GIS 工具的地理坐标点。 ## 安装 请参阅本 README 块下方的“命令 — 安装与示例”中列出的命令。 注意: - 在运行扫描之前,您必须安装 Termux 和 Termux:API 支持(`termux-api` 包)。 - 处理 JSON 需要安装 `jq`。 - 脚本默认会在 `$HOME/.cache/BuriXon-code` 下创建缓存目录。 ## 使用方法 使用**模式**及其**选项**运行脚本。 模式控制主要操作(扫描/保存/缓存/验证),选项调整行为(提供商、延迟、文件名、格式等)。 ### 模式 | 模式 | 别名 | 用途 | |------|---------|---------| | Run | `R` `-R` `--run` | 执行 Wi-Fi 扫描并将结果追加到缓存。可以是单次或连续扫描。 | | Save | `S` `-S` `--save` | 将缓存数据导出为指定格式的文件。需要 `--name` 和 `--format`。 | | Cache | `C` `-C` `--cache` | 缓存管理:列出 (`--list`)、计数 (`--count`)、清除 (`--purge`)。 | | Check/Verify | `V` `-V` `--check` | 验证提供文件的结构(将路径作为参数传递)。 | | Alias | `A` `-A` `--alias` | 创建/管理/运行动态脚本/选项别名 | | Help/Info | `-h` `--help` `-v` `--version` `-i` `--version-info` | 显示帮助、版本或扩展关于信息。 | #### 典型工作流程 - 快速扫描与检查:运行单次扫描 (`--run`),然后使用 `--cache --list` 查看捕获的内容。 - 连续移动映射:在步行/驾驶时使用 `--run --countinuous -d 5` 构建地理标记数据集(根据需要调整 `-d`)。 - 导出到 Google Earth:构建缓存后,执行 `--save -n map_export -f kml`,然后在 Google Earth 中打开 `.kml` 文件。 - 数据分析:导出为 `csv` 或 `jsonl`,然后导入到您的分析工具(Excel, Pandas 等)。 ## 配置与文件位置 - **缓存目录:** `$HOME/.cache/BuriXon-code/Termux-WiFi-map/`(如果缺失,脚本将创建它)。 - **缓存文件:** `$HOME/.cache/BuriXon-code/Termux-WiFi-map/wifi_scan_cache.jsonl`(换行符分隔的 JSON 对象)。 ## 依赖项(脚本检查的完整列表) 脚本会检查以下命令是否存在,若缺少任何一个将中止运行: - `termux-wifi-scaninfo` (Termux:API) - `jq` (JSON 解析) - `termux-location` (Termux:API) - `termux-api-start` / `termux-api-stop` (API 控制) - `timeout` (coreutils 或 busybox) - `awk`, `sed`, `tr`, `date` (Shell 实用工具) - `termux-vibrate`(可选,除非您依赖振动功能) - `tput`, `stty` (终端格式化) ## 故障排除与提示 - 如果扫描未返回 GPS 坐标:尝试将提供商切换为 `network`(室内速度更快)或增加 GPS 预热时间。 - 如果 Termux:API 调用在一段时间后开始失败,请使用 `--exit-on-fail` 强制立即退出,使用 `--last-location` 使用最后已知位置,或让脚本尝试重启 API。 - 对于大型连续捕获任务,请定期轮转/导出缓存以避免文件过大。JSONL 是流友好的 —— 您可以在扫描时使用 tail 命令查看。 - 使用 CSV 导出时,请检查特殊字符(SSID 字符)是如何转义的 —— 如果需要完全保真度,建议使用 JSON/JSONL。 ## 许可证 GPL-3.0 — 请参阅仓库中的 LICENSE 文件。 ## 相关文件(仓库中) - 主脚本(可执行文件) — 主要接口。 - README.md(本文件) — 用户指南。 - LICENSE — GPL-3.0。 ## 最后说明 这是一款移动优先的映射工具 —— 专为 Android/Termux 上的灵活性而设计。如果您愿意,我可以生成一个扩展版的 README 变体,内容包括: - 脚本生成的示例 JSON/JSONL 行, - 可直接复制的 `google-earth` KML 代码片段预览, - 或关于将 JSONL 转换为 GeoJSON 以用于 GIS 工作流的简短教程。 ## 支持 ### 联系我: 如有任何问题、建议或疑问,请通过以下方式联系: - *Email:* support@burixon.dev - *联系表单:* [点击这里](https://burixon.dev/contact/) - *Bug 报告:* [点击这里](https://burixon.dev/bugreport/#Termux-WiFi-map) ### 支持我: 如果您觉得这个脚本有用,请考虑通过捐赠来支持我的工作: [**捐赠**](https://burixon.dev/donate/) 您的贡献有助于开发新项目和改进现有工具!
标签:Android, CSV, DSL, GPS定位, JSON, KML导出, Python替代, Termux工具, WiFi安全, WiFi扫描, 信号监测, 地理位置, 安全运营中心, 应用安全, 开源, 插件系统, 无Root, 热点探测, 目录枚举, 移动安全, 网络映射, 轻量级工具