Mostrando las entradas con la etiqueta UBUNTU. Mostrar todas las entradas
Mostrando las entradas con la etiqueta UBUNTU. Mostrar todas las entradas

domingo, mayo 27, 2007

WIFIFAST

Aki les presento el programa q estoy haciendo para conectarse a cualkier wireless
incluso en modo ad-hoc

supuestamente iba ahacer un script de 3 lineas, pero como todos saben las cosas empiezan a mutar


y no resivo reclamos pq no esta en python p perl o cosas asi
se me ocurrio hacerlo en bash y ra

ya aki les va

les recuerdo q aun le falta mucho


#!/bin/bash
echo $1 $2 $3


iwconfig >& salida_iwconfig_tmp
eth=`cat salida_iwconfig_tmp | grep ESSID | awk '{print $1}'`
declare -i cant_par=$#
#echo $cant_par

if [ $# -lt 1 ] #El comando si no viene con parametros entonces listara las redes disponibles
then


cel=(`iwlist $eth scan | grep ESSID`) ## con esto filtramos las redes q nos entrega iwlist y lo redusimos a ESSID:"algo"
mode=(`iwlist $eth scan | grep Mode`) ## con esto filtramos las redes q nos entrega iwlist y lo redusimos a Mode:manager
m=`echo ${mode[$i]} | awk -F ":" '{print $2}'`

rm salida_iwconfig_tmp
declare -i i=0

while [ $i -lt ${#cel[*]} ]
do

echo "$i ${cel[$i]} Modo: $m" # con esto mostramos las redes asociadas a un
#numero
i+=1

done
declare -i num_red=${#cel[*]}
declare -i num_redes=${#cel[*]}
num_red+=1
while [ $num_redes -lt $num_red ]
do
# echo "$num_red numeor de red"
# echo "${#cel[*]} numeros de parametros"
echo "Ingrese el numero de la red a la que se desea asociar: "
read num_o_letra
echo $num_o_letra | mawk /[*_A-Za-z]/ > num_letra
linea=(`wc -l num_letra`)
rm num_letra
declare -i cant=`echo ${linea[0]}`
if [ $cant -eq 0 ]
then
num_red=num_o_letra
# echo "opcin validaaaaaaaa"

else
echo "Debe ingresar un numero valido"
fi

# echo $num_red
num_red+=1
# echo "tuuuuuuuu $num_red"

done
num_red=num_red-1
# echo $num_red
echo "Ud. se asociara a la Red ${cel[$num_red]}"
e="`echo ${cel[$num_red]} | awk -F ":" '{print $2}'`" #####se filtra el ESSID:"algo" dejandolo solo en "algo"


echo "Ingrese la clave de la red: "
read k



else #si viene con parametros

if [ $# -lt 2 ] #si viene sin parametro de clave
then
echo "****ALERTA***** No se utilizara encriptación. Peligro!! Red sin Seguridad!!"
k="off"
# echo "sin argumento 2"
# echo $k
else
k=$2
echo $k
fi

# echo $2

if [ $# -lt 3 ] #si viene sin parametro de modo
then
echo "Modo Managed Activado"
# ip="dhclient eth2"
# echo "sin argumento 3"
m="Manager"
else
m=$3

fi

if [ $# -eq 3 ] # Si viene con 3 parametros kiere decir q se kiso modificar el modo de la tarjeta de red
then

echo "Modo $3 Activado" #se muestra el modo activado
verificar="NO"

if [ $3 = "ad-hoc" ] || [ $3 = "Ad-Hoc" ] ###si se asocia a una red adhoc se necesita fijar
#una ip manual a la t de red
then
while [ $verificar = "NO" ]
do
echo "Ingrese direccion ip para su tarjeta de red: "
read ip
verificar=`python verifica_ip.py $ip`
if [ $verificar = "NO" ]
then
echo "******ERROR: Direccion ip Invalida"
fi
done

ifconfig eth2 $ip
verificar="NO" ##Esto es para controlar q los dns sean validos

while [ $verificar = "NO" ]
do
echo "Ingrese las Direcciones de los Servidores DNS, en caso de omitir se mantendran los actuales: "
echo "Ejemplo: 200.100.10.1 200.100.23.4 200.4.5.1"
read dns
arreglo=($dns)

# echo "Cantidad se servidores DNS"
# echo ${#arreglo[@]}

if [ ${#arreglo[@]} -lt 1 ]
then
echo "Se mantendran los siguientes Servidores DNS:"
cat /etc/resolv.conf
verificar="SI"
fi

declare -i j=0
while [ $j -lt $# ]
do
# echo "$j akiiiiiiiiiii"
ip=${arreglo[j]}
# echo $ip
verificar=`python verifica_ip.py $ip`
if [ $verificar = "NO" ]
then
echo "*****ERROR:Servidor DNS ${arreglo[j]} invalido*******"
echo "Ingrese nuevamente"
break
fi
j+=1

done
done


else
if [ $m = "Managed" ] || [ $m = "managed"]
then
t=0
else
if [ $m = "Monitor" ] || [ $m = "monitor"]
then
echo "Modo Monitor no soportado"
else
echo "Modo desconocido"
fi
echo "Se activara Modo Managed"
m="Managed"
fi
fi
fi



fi

echo $#

if [ 3 -lt $cant_par ]
then

echo "cantidad de parametros envalida"
echo "wififast "
else

# echo "Parametroa validos"
# echo $1 $k $m
e=$1

iwconfig $eth essid $e key "$k" mode $m # aki se ejecuta el comando

sleep 2 #de esta forma nos aseguramos q el iwconfig alcance a reaccionar y efectivamente aparesca
#enlazado

if [ unassociated = `iwconfig eth2 | grep eth2 | awk '{print $2}'` ]
then
echo "No te has logrado asociar a la red $1"
elif [ IEEE = `iwconfig eth2 | grep eth2 | awk '{print $2}'` ]
then

echo "Te has Asociado a la red `iwconfig eth2 | grep eth2 | awk '{print $4}'`"

fi
if [ $# -lt 3 ] && [ $# ] #si viene sin parametro de modo
then
echo "Modo Managed Activado"
ip="dhclient eth2"

fi
fi


#### P hacer
### ubicar bien el dhclient
#### agrgar los dns ingresados a mano al resolv.conf
#### validar ingresos de datos (ip estan listas, numero de red del selector de redes tb esta listo)

adsense busqueda

Búsqueda personalizada