La actividad consistió en escribir un código para escanear las redes cercanas a un lugar y posteriormente realizar el mapeo de las mismas utilizando Google Maps.
Básicamente lo que se buscara es el nombre de la red y la potencia de la señal en determinado lugar.
El escáner
Lo primero que programé fue el escáner wifi utilizando python. Utilizando subprocess llamo al comando iwlist para que me muestre la información disponible de las redes a mi alrededor. Sin embargo, el comando iwlist por sí solo nos mostrará solo la información del router en el que estamos conectados, hay que llamar el comando con sudo, también le damos la interfaz que usaremos para escanear, en mi caso wlan0 que corresponde a la inalámbrica, el comando queda de la siguiente forma:
sudo iwlist wlan0 scan
Lo que nos produce la siguiente salida.
Nos regresa mucha información para solo 3 datos que necesitamos, entonces combinamos iwlist con el comando egrep para extraer solo la información que necesitamos, en mi caso los campos ESSID, Frequency, Quality y Signal level, el comando queda de la siguiente forma:
sudo iwlist wlan0 scan | egrep -i 'ESSID|quality|Frequency'
Lo que nos produce la siguiente salida.
Mucho mejor, con ello nuestro escaner esta en un 50%, ahora debemos automatizar la tarea, para ello utilicé python y escribí el siguiente script:
Como las expresiones son iguales en cada corrida entonces lo que hago es eliminar las partes que no me sirven con la función de python replace aplicada a cada cadena
El escáner lanzará la información formateada de la siguiente forma:
Como imagen de ejemplo solo se muestran 4 redes pero al realizar la práctica se hallarón las 5 redes.
De la información que obtuvimos nos importan 2 cosas, la calidad o quality, que de mide entre 0 y 70, y el nivel de señal o signal level que se mide en dbm. El nivel máximo de calidad es 70 y el mínimo es 10 antes de que nuestra antena decida ignorar un router, lo mismo pasa con la señal, el máximo es -35dbm y el mínimo -95dbm, si utilizamos el nivel de señal entonces mediremos de manera lineal, es decir, si -35dbm es el 100% y -95dbm es 0% entonces -60dbm es el 50%, por citar un ejemplo.
Lo siguiente fue "pedir permiso" a mis vecinos para accesar a su router y poder ubicarlo, hay varios tutoriales en internet de cómo hacerlo, pero recuerden que no es algo muy ético o legal. Hay otras formas, pero fue la más sencilla que se me ocurrió por ahora.
Así pude aproximar la ubicación de cada router utilizando WIFI y Google Maps. Con ello obtuve el siguiente mapita basado en las coordenadas que me dio Maps:
Después utilicé mi celular y camine por ahí con el monitor en la computadora alrededor de mi casa y en la calle. La caminata fue para buscar el lugar en donde la señal dejaba de ser detectada por el monitor en python. Después de varias mediciones ubiqué el límite de todas las redes, en dónde dejaban de ser detectadas, entonces supuse que en esé lugar estaba la frontera de señal de cierto router. Con mi celular simplemente recuperaba las coordenadas donde se perdía la señal y ahora tenía 2 puntos:
- El centro del router
- El punto donde se pierde la señal
Por ultimo utilizando Google Maps, en el panel izquierdo, hasta abajo seleccionamos Maps Labs, ahí simplemente activamos la Herramienta de medición de distancias, la distancia entre el punto que indica el centro del router y el punto que indica la frontera del router es la distancia que representa el radio del circulo que dibujaremos para mapear el alcance la red.
Tomé nota de las distancias que me arrojó la herramienta (en metros) y esa distancia la utilicé como radio para dibujar los círculos que indican el alcance de la red.
Finalmente dibujamos los círculos centrados en la ubicación aproximada de cada router y el radio como el alcance del router.
Como podemos ver, algunos varían en tamaño, también las ubicaciones de cada router parecen ser no las más acertadas, recordemos que es una aproximación pero resulta útil por ahora para saber que tanto puedes alejarte de tu casa antes de perder la señal de internet.
Referencias
Muy bien; 7 pts.
ResponderEliminarhola amigo, copie el codigo y no me funciono, mepodrias ayudar estoy buscando un codigo que escanee frcuencias
ResponderEliminar