WaveDigger
Explora las señales inalámbricas para descubrir sus ubicaciones físicas. WaveDigger te ayuda a encontrar puntos de acceso Wi-Fi por su BSSID (dirección MAC) y torres de telefonía celular (LTE y 5G NR) por sus parámetros de red. Construido con Next.js, TypeScript y deck.gl para visualización de mapas interactivos.
Puedes encontrar una versión alojada en https://wavedigger.networksurvey.app.
Características
- Búsqueda por BSSID: Introduce un BSSID para encontrar su ubicación aproximada
- Validación de entrada: Formateo y validación automáticos de la entrada de BSSID
- Admite formatos:
AA:BB:CC:DD:EE:FF, AA-BB-CC-DD-EE-FF, AABBCCDDEEFF
- Búsqueda de torres de telefonía celular: Busca torres LTE (MCC, MNC, TAC, Cell ID) o torres 5G NR (MCC, MNC, TAC, NCI). Las búsquedas NR devuelven la celda objetivo más las celdas NR circundantes en el mismo clúster.
- Mapa interactivo: Visualiza los resultados en un mapa impulsado por deck.gl
- Historial de búsquedas: Realiza un seguimiento de las búsquedas recientes para un acceso rápido
- Diseño adaptable: Funciona en dispositivos de escritorio y móviles
Agradecimientos
🙏 Este proyecto no sería posible sin el increíble trabajo realizado por el equipo de apple-corelocation-experiments.
WaveDigger se basa en su investigación e ingeniería inversa de la API de servicios de ubicación de Apple. En concreto, utilizamos:
- Sus definiciones de protobuf para la API WLOC de Apple
- La documentación de los endpoints de la API y los formatos de solicitud/respuesta
- La comprensión de la codificación de coordenadas y el comportamiento de la API
- El prefijo de bytes inicial requerido para solicitudes válidas
Su trabajo en la comprensión y documentación de los servicios de ubicación no documentados de Apple ha hecho posible que existan proyectos como WaveDigger. Echa un vistazo a su repositorio para consultar la investigación original y herramientas adicionales para trabajar con los servicios de ubicación de Apple.
Primeros pasos
Requisitos previos
Instalación
- Instala las dependencias:
- (Opcional) Añade un token de Mapbox para obtener mosaicos de mapa mejorados:
- Obtén un token de Mapbox
- Añádelo a
.env.local:
NEXT_PUBLIC_MAPBOX_TOKEN=your_token_here
Ejecutar el servidor de desarrollo
Abre http://localhost:3000 para ver la aplicación.
Detalles técnicos
Arquitectura
- Frontend: Next.js 15 con TypeScript
- Visualización de mapas: deck.gl con react-map-gl
- Estilos: Tailwind CSS
- API: Rutas de API de Next.js
API WLOC real de Apple
La aplicación utiliza la API WLOC real de Apple para consultar ubicaciones de BSSID. Esta implementación se basa en la investigación y las definiciones de protobuf del proyecto apple-corelocation-experiments.
La implementación de la API:
- Utiliza protobuf para la comunicación con los servidores de Apple
- Envía solicitudes a
https://gs-loc.apple.com/clls/wloc
- Gestiona la conversión de coordenadas (Apple utiliza int64 con 8 decimales)
- Admite tanto los endpoints de la región predeterminada como los de China
Probar con BSSID reales
Para probar la aplicación:
- Encuentra un BSSID (dirección MAC) de Wi-Fi real de tu router o punto de acceso
- Introdúcelo en cualquiera de los formatos admitidos
- La aplicación consultará la base de datos de Apple y mostrará la ubicación si la encuentra
Nota: No todos los BSSID están en la base de datos de Apple. Los puntos de acceso recién desplegados o privados pueden no tener datos de ubicación.
Hoja de ruta de características
- Exportar resultados: Descarga los resultados de búsqueda como JSON/CSV
- Vista de clúster por TAC: Explora todas las torres de un TAC sin necesidad de un Cell ID o NCI específicos
Licencia
WaveDigger está licenciado bajo la GNU Affero General Public License v3.0. Si ejecutas una versión modificada de este software como servicio de red, la AGPL te exige poner tu código fuente modificado a disposición de los usuarios de dicho servicio.