wavedigger README

The project's README from github.com/christianrowlands/wavedigger. As one markdown file: README.md.

WaveDigger

Dig into wireless signals to discover their physical locations. WaveDigger helps you find Wi-Fi access points by their BSSID (MAC address) and cell towers (LTE and 5G NR) by their network parameters. Built with Next.js, TypeScript, and deck.gl for interactive map visualization.

A hosted version can be found at https://wavedigger.networksurvey.app.

WaveDigger Screenshot

Features

Acknowledgments

🙏 This project would not be possible without the incredible work done by the apple-corelocation-experiments team.

WaveDigger is built upon their research and reverse engineering of Apple's location services API. Specifically, we use:

Their work in understanding and documenting Apple's undocumented location services has made it possible for projects like WaveDigger to exist. Please check out their repository for the original research and additional tools for working with Apple's location services.

Getting Started

Prerequisites

Installation

  1. Install dependencies:
npm install
  1. (Optional) Add a Mapbox token for enhanced map tiles:
    • Get a token from Mapbox
    • Add it to .env.local:
    NEXT_PUBLIC_MAPBOX_TOKEN=your_token_here
    

Running the Development Server

npm run dev

Open http://localhost:3000 to view the application.

Technical Details

Architecture

Real Apple WLOC API

The application uses Apple's real WLOC API to query BSSID locations. This implementation is based on the research and protobuf definitions from the apple-corelocation-experiments project.

The API implementation:

Testing with Real BSSIDs

To test the app:

  1. Find a real Wi-Fi BSSID (MAC address) from your router or access point
  2. Enter it in any supported format
  3. The app will query Apple's database and show the location if found

Note: Not all BSSIDs are in Apple's database. Newly deployed or private access points may not have location data.

Features Roadmap

License

WaveDigger is licensed under the GNU Affero General Public License v3.0. If you run a modified version of this software as a network service, the AGPL requires you to make your modified source code available to users of that service.

wavedigger (christianrowlands/wavedigger)

Searching Database…

这是什么?WaveDigger 是一个网页工具,利用 Apple 的定位服务 API,按 BSSID(MAC 地址)查询 Wi-Fi 接入点的物理位置,按网络参数查询 LTE/5G NR 基站的位置。
这是独立应用,还是接入了 Apple 自己的数据库?它是一个自托管的 Next.js 网页应用,在幕后查询 Apple 真实的 WLOC API,复用逆向工程得到的 protobuf 定义来发送有效请求并解码响应。
怎么让它跑起来?用 npm 安装 Node.js 依赖,可选地在 .env.local 里添加 Mapbox 令牌以获得更好的地图瓦片,然后启动 Next.js 开发服务器。
需要先准备 Node.js 和 Mapbox 账户吗?你需要 Node.js 24+ 和 npm;Mapbox 令牌是可选的,只会改善地图瓦片的渲染效果。
我输入的每个 BSSID 都真能查到位置吗?不能——Apple 的数据库并不覆盖每个接入点,新部署的或私有的路由器经常查无结果。
有没有不用自己部署就能用的托管版本?有,README 提到存在托管版本,不过配有完整搭建步骤、形成文档的路径是自行托管。
如果我部署自己修改过的副本,AGPL 许可证有什么讲究?有——AGPL-3.0 要求:如果你把修改版作为网络服务运行,就必须向它的用户公开你修改后的源代码。
除 BSSID 之外它还支持哪些查询?它还支持通过 MCC/MNC/TAC/Cell ID 查询 LTE 基站,通过 MCC/MNC/TAC/NCI 查询 5G NR 基站,NR 搜索还会返回同一集群里的邻近小区。
结果是怎么展示的?结果标绘在由 deck.gl 驱动的交互式地图上,应用还保留搜索历史,方便快速重新访问最近的查询。
它建立在谁的研究之上?它建立在 apple-corelocation-experiments 项目的逆向工程工作之上,该项目记录了 Apple 未公开的 WLOC API、protobuf 格式和坐标编码。
BSSID 可以用哪些格式输入?输入接受 AA:BB:CC:DD:EE:FF、AA-BB-CC-DD-EE-FF 或 AABBCCDDEEFF,并带自动格式化和校验。
Size
3.6 MB
Stars
271
Updated
CommitOct 07
Age
1y
Commits · 90 Days