elhacker.net cabecera Bienvenido(a), Visitante. Por favor Ingresar o Registrarse
¿Perdiste tu email de activación?.

 

 


Tema destacado: Curso de javascript por TickTack


+  Foro de elhacker.net
|-+  Programación
| |-+  Scripting
| | |-+  [BASH] Script que compruebe si wlan1 esta conectada
0 Usuarios y 1 Visitante están viendo este tema.
Páginas: [1] Ir Abajo Respuesta Imprimir
Autor Tema: [BASH] Script que compruebe si wlan1 esta conectada  (Leído 4,327 veces)
lagranladilla

Desconectado Desconectado

Mensajes: 39



Ver Perfil
[BASH] Script que compruebe si wlan1 esta conectada
« en: 26 Junio 2013, 22:36 pm »

Hola!
hacia mucho tiempo que no realizava un Script en bash y ahora quiero realizar algo muy sencillo pero que no acabo de encontrarle solucion!.

 La idea seria poner un script al inicio del sistema que compruebe si mi tarjeta wifi (wlan1), q va por USB y es externa esta conectada al ordenador.
En el caso de que lo este se le cambiaria la MAC:

Código:
#!/bin/bash

UP=$(ifconfig | grep -o 'wlan1')

if ["$UP"="wlan!"]; then
      ifconfig wlan1 down
      macchanger -A wlan1 
      ifconfig wlan1 up
fi

Me da error en la linea donde llamo al if, me dice lo siguiente:

Código:
[wlan1=wlan1]: orden no encontrada

Creo que estoy haciendo algo mal... si wlan1 esta connectada entonces UP devuelve wlan1 no?

creo que la estoy liando y deberia ser mucho mas sencillo

Gracias de antemanooo!!


En línea

-- KiLiaN --


Desconectado Desconectado

Mensajes: 1.163


Ju Já!!


Ver Perfil
Re: [BASH] Script que compruebe si wlan1 esta conectada
« Respuesta #1 en: 26 Junio 2013, 22:54 pm »

Prueba asi, en bash los espacios en blanco cuentan mucho.

Código
  1. #!/bin/bash
  2.  
  3. UP=$(sudo ifconfig | grep -o 'eth1')
  4. echo $UP
  5. if [ $UP = eth1 ]; then
  6.     ifconfig wlan1 down
  7.      macchanger -A wlan1  
  8.      ifconfig wlan1 up
  9. fi


En línea

lagranladilla

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: [BASH] Script que compruebe si wlan1 esta conectada
« Respuesta #2 en: 26 Junio 2013, 23:33 pm »

Bien! era eso!!  ;-)

Ahora el script se ejecuta pero a la hora de cambiar la MAC, la consola devuelve:

Código:
Permanent MAC: 48:02:##:##:##:## (unknown)
Current   MAC: 48:02:##:##:##:## (unknown)
ERROR: Can't change MAC: interface up or not permission: Invalid argument

He intentado cambiar la MAC de la interficie realizando los comandos uno a uno como sudo a traves del terminal y me da el mismo error... A que se puede deber?? Podria ser alguna clase de incompatibilidad del Macchanger?? yo nunca he oido que puda acurrir...

pd: (las "#" las pongo yo, en el ordenador me aparece la MAC correctamente  ;))
En línea

-- KiLiaN --


Desconectado Desconectado

Mensajes: 1.163


Ju Já!!


Ver Perfil
Re: [BASH] Script que compruebe si wlan1 esta conectada
« Respuesta #3 en: 26 Junio 2013, 23:41 pm »

Lo ejecutas con sudo?
En línea

lagranladilla

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: [BASH] Script que compruebe si wlan1 esta conectada
« Respuesta #4 en: 26 Junio 2013, 23:45 pm »

Si!

esta en /home/"user"/Escritorio y se llama S99mac ya que luego pensaba ponerlo en la carpeta /etc/rc2.d

lo ejecuto como sudo ./S99mac

:S
En línea

lagranladilla

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: [BASH] Script que compruebe si wlan1 esta conectada
« Respuesta #5 en: 27 Junio 2013, 00:42 am »

tambien si escribo, dice:

Código:
sudo ifconfig wlan1 hw ether AA:AA:AA:AA:AA:AA
SIOCSIFHWADDR: Argumento inválido

con el wlan0 me funciona tanto el script como los comandos.. La tarjeta wlan1 es  nueva, es una wifisky con un chipset ralink 3070
En línea

lagranladilla

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: [BASH] Script que compruebe si wlan1 esta conectada
« Respuesta #6 en: 27 Junio 2013, 13:06 pm »

bien, finalmente probando con otra entena (wisacom con chipset realtek 8187L), el script me funciona perfectamente con lo que deduzco que el problema viene del chipset o de la misma antena... He probado tambien con otros sistemas (wifislax, kali linux...) y el problema persiste.

Dejo el script final por si alguien quisiera usarlo:

Código
  1. #!/bin/bash
  2.  
  3. # wlan0 & eth0
  4.  
  5. ifconfig eth0 down
  6. ifconfig wlan0 down
  7. macchanger -A eth0
  8. macchanger -A wlan0
  9. ifconfig eth0 up
  10. ifconfig wlan0 up
  11.  
  12. # wlan1 y 2, dispositivos externos (si existe)
  13.  
  14. UP=$(ifconfig | grep -o 'wlan1')
  15. UP2=$(ifconfig | grep -o 'wlan2')
  16.  
  17. if [ "$UP" = wlan1 ]; then
  18.  
  19. ifconfig wlan1 down
  20. macchanger -A wlan1
  21. ifconfig wlan1 up
  22. fi
  23.  
  24. if [ "$UP2" = wlan2 ]; then
  25.  
  26. ifconfig wlan2 down
  27. macchanger -A wlan2
  28. ifconfig wlan2 up
  29. fi
  30. #fin del script

Para poner el Script al inicio de sessión uno de los metodos seria copiarlo en la carpeta /etc/rc2.d y nombrarlo S99mac (con permisos de ejecucion).

salud!
En línea

-Myx-

Desconectado Desconectado

Mensajes: 39



Ver Perfil
Re: [BASH] Script que compruebe si wlan1 esta conectada
« Respuesta #7 en: 28 Junio 2013, 04:57 am »

Otra forma de hacer lo mismo:

Código
  1. #!/bin/bash
  2. for interface in /sys/class/net/*; do
  3.    [[ $interface = 'lo' ]] && continue
  4.    ifconfig "$interface" down
  5.    macchanger -A "$interface"
  6.    ifconfig "$interface" up
  7. done
  8.  

Tambien se puede jugar con udev para hacer lo mismo...creo

Código:
http://www.reactivated.net/writing_udev_rules.html
En línea

Páginas: [1] Ir Arriba Respuesta Imprimir 

Ir a:  

WAP2 - Aviso Legal - Powered by SMF 1.1.21 | SMF © 2006-2008, Simple Machines