Cómo encontrar la dirección física de un router por BSSID usando geowifi
Cada vez que un smartphone busca una red familiar, escanea las ondas de radio y detecta docenas de routers a su alrededor. Grandes empresas como Google y Apple han estado recopilando estos datos junto con coordenadas GPS durante años para determinar la ubicación de los dispositivos en áreas urbanas densas sin esperar a los satélites.
Como resultado, se ha formado a nuestro alrededor un enorme mapa de todos los puntos de acceso de hogares y oficinas. Si consigues la dirección MAC de un router (BSSID) o un nombre de red poco común (SSID), puedes obtener sus coordenadas físicas en un par de segundos.

La utilidad geowifi se encarga de esta rutina. En lugar de verificar manualmente una docena de servicios dispersos, envía consultas a todas las bases de datos de geolocalización Wi-Fi disponibles a la vez.
Por qué combinar todas las bases de datos en un solo script
Cada base de datos recopila coordenadas a su manera. El servicio Wigle depende de entusiastas que recorren las ciudades con escáneres activados. La base de datos de Apple se alimenta de smartphones iOS, la de Google de dispositivos Android.
Si buscas un punto en un solo lugar, existe una alta probabilidad de no obtener nada. Los puntos de acceso se mueven, aparecen en nuevos desarrollos o desaparecen de las listas públicas. La utilidad geowifi consulta fuentes abiertas y semicerradas:
- Wigle
- Apple Geolocation Services
- Google Geolocation API
- Mylnikov (mylnikov.org)
- WifiDB
- Combain
- Freifunk Carte
Un detalle interesante: las consultas a Apple aquí funcionan sin registro ni suscripciones pagadas, utilizando una implementación inspirada en el proyecto iSniff-GPS. Para Google y Wigle, necesitarás claves API, pero tienen límites gratuitos que son suficientes para tareas cotidianas.
Inicio rápido y configuración
El proyecto está escrito en Python. Puedes desplegarlo localmente en un entorno virtual o mediante un contenedor Docker.
Para trabajar de forma local, necesitarás git y Python 3:
git clone https://github.com/GONZOsint/geowifi
cd ./geowifi/
virtualenv geowifi
source geowifi/bin/activate
python3 -m pip install -r requirements.txt
Si no quieres lidiar con el entorno de Python, construye el contenedor:
docker build -t geowifi:latest .
Configuración de API
En el directorio gw_utils hay un archivo config.yaml. Aquí es donde configuras los tokens de acceso:
wigle_auth: "your_encoded_token"
google_api: "your_google_api_key"
combain_api: "your_combain_key"
no-ssl-verify: false
Para el trabajo básico con bases de datos abiertas y Apple, las claves son opcionales, pero con ellas el porcentaje de puntos encontrados es notablemente mayor.
Cómo buscar coordenadas
La utilidad acepta un identificador de red y un indicador de tipo de búsqueda: por BSSID (dirección MAC) o SSID (nombre de red).
Búsqueda por dirección MAC del router:
python3 geowifi.py -s bssid C8:D7:19:XX:XX:XX
Búsqueda por nombre de red:
python3 geowifi.py -s ssid "MyCoffeeShop_Free"
De forma predeterminada, el programa genera un mapa HTML con marcadores de diferentes proveedores de datos. Diferentes bases de datos pueden devolver coordenadas con una ligera dispersión, y un mapa visual ayuda a comprender el área de cobertura real o el edificio exacto.

Si necesitas el resultado para automatización posterior o para pasarlo a otro script, solo añade el parámetro -o json:
[
{
"module": "google",
"bssid": "C8:XX:XX:XX:5E:45",
"latitude": 33.571844,
"longitude": -112.0495897
},
{
"module": "vendor_check",
"vendor": "Cisco-Linksys, LLC"
},
{
"module": "apple",
"bssid": "C8:XX:XX:XX:5E:45",
"latitude": 33.57198715,
"longitude": -112.0495812
},
{
"module": "wigle",
"bssid": "C8:XX:XX:XX:5E:45",
"ssid": "Vertigo",
"latitude": 33.60998154,
"longitude": -112.0495922
}
]
Además de las coordenadas, la utilidad identifica inmediatamente el fabricante del equipo de red mediante el prefijo OUI de la dirección MAC.
Dónde resulta útil
La herramienta fue creada para tareas de OSINT y reconocimiento de redes, pero también es útil en áreas relacionadas:
- Análisis forense y de volcados de red. Si el portátil investigado ha conservado solicitudes de probe o un historial de conexiones a redes Wi-Fi, puedes reconstruir la ruta aproximada de movimiento del dispositivo por BSSID.
- Auditoría de seguridad y privacidad. Es útil comprobar tu router doméstico o corporativo. A menudo descubres que un router que se mudó de un apartamento a una casa rural todavía aparece en la dirección antigua en las bases de datos de Google o Apple.
- Geolocalización de dispositivos IoT. Cuando un dispositivo solo informa de la lista de puntos de acceso visibles, el script convierte esta lista en coordenadas geográficas comprensibles sin usar un módulo GPS.
Conclusión
geowifi es una herramienta compacta y práctica que resuelve una tarea específica sin complejidad innecesaria. El código es simple, las dependencias son estándar y la lógica es transparente. Si realizas investigaciones de OSINT, analizas volcados de tráfico inalámbrico o simplemente te preguntas cuánta geodata se filtra a través de los routers Wi-Fi, añade esta utilidad a tu kit de herramientas.
Proyectos relacionados