martes, 11 de agosto de 2009

Medir el nivel de señal wireless


Debido a que no me llegaba la señal wireless, me puse a mirar como medirla, y además de forma numérica en %.
La versión de linux es ubuntu 8.1.
uname -a
Linux laurita 2.6.27-14-generic #1 SMP Wed Jul 29 09:01:45 UTC 2009 i686 GNU/Linux
La tarjeta wireless es Intel
lspci | grep Wireless
03:00.0 Network controller: Intel Corporation PRO/Wireless 3945ABG [Golan] Network Connection (rev 02)
Podremos ver la calidad de la señal es 47 siendo la máxima de 70:
sudo iwconfig eth1 | grep Quality
Link Quality=47/70 Signal level=-63 dBm Noise level=-127 dBm
Podemos verlo de forma numérica, aparece como 50 aquí:
cat /proc/net/wireless
Inter-| sta-| Quality | Discarded packets | Missed | WE
face | tus | link level noise | nwid crypt frag retry misc | beacon | 22
eth1: 0000 50. -60. -127. 0 0 0 0 0 0
Podemos hacer este script para que nos de el % en tiempo real:
--- inicio copiar y pegar
# Por Paco Aldarias
# 11.8.09
# senyal.sh

# Calculo del maximo valor de señal.
max_lin=$( iwconfig eth1 | awk ' /Quality/ { print $2 }' | cut -d "/" -f2)
suma=0
valores=0
promedio=0
maximo=0
minimo=100
while :
do
clear
echo "MEDIDOR DE NIVELES DE SEÑAL"
echo "Por Paco Aldarias. 11.8.09"
# Obtener el valor de la señal
s=$(cat /proc/net/wireless | tail -1 | awk '{ print $3 }' | cut -d "." -f1)
# Calculo del porcentaje
ps=$(echo " ($s * 100 / $max_lin) " | bc )
let suma=suma+ps
let valores=valores+1
let promedio=suma/valores
if [ $ps -lt $minimo ];then minimo=$ps; fi
if [ $ps -gt $maximo ];then maximo=$ps; fi
echo "Quality link. Calidad señal [MAXIMO $max_lin]: $s -> $ps %"
echo "Minimo: $minimo % ; Maximo: $maximo %; Promedio: $promedio %"
sleep 1
done


--- fin copiar y pegar

El resultado es:
MEDIDOR DE NIVELES DE SEÑAL
Por Paco Aldarias. 11.8.09
Quality link. Calidad señal [MAXIMO 70]: 37 -> 52 %
Minimo: 50 % ; Maximo: 52 %; Promedio: 51 %
Otra opcion, la cual nos deja sin red, es usar el programa:
kismet

Otras opciones, según Ramón Onrubia:

Para hacer un scan por consola del nivel de potencia del resto de redes en
tiempo real, con:

airodump-ng interfaz

Para ver el nivel de potencia de la red a la que estoy asociado según
el punto de la casa en que me encuentre y con una frecuencia de un
segundo entre muestreos, tan sólo hago esto:

watch -t -n 1 "iwconfig wlan0 | grep Link"

suponiendo que la tarjeta es la wlan0.

No hay comentarios:

Publicar un comentario