Seguridad Wireless - Wifi

Suite Seguridad Wireless => Colaboracion y desarrollo de nuestras lives => Mensaje iniciado por: USUARIONUEVO en 17-04-2015, 22:32 (Viernes)

Título: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 17-04-2015, 22:32 (Viernes)
A VER si me explico como libro abierto ,o medio abierto.


estoy intentando mejorar el script que busca fabricantes por mac.


la idea es que el script se de cuenta , cuando el campo de busqueda NO SEA CORRECTO.

el campo de busquda es del tipo

xx:xx:xx

las x , estarian cubiertas por un charset estricto ...

A-F a-f 0-9

charset=ABCDEFabcdef0123456789


como hago para que por ejemplo si se escribe mal , o hay un caracter invalido , el script se de cuenta y avise.


por ejemplo

A1:2B:3Z    O    11::22::34    O  INCLUSO incompleto   00:11:2


creo que solo me falta este detallito ...a veces obtenemos como resultado fabricante desconocido ... por un error de sintaxis y busco evitar eso.
Título: Re:
Publicado por: warcry en 17-04-2015, 22:44 (Viernes)
Metele un if cuando valide, si encuentra un carácter no valido no le dejas continuar
Título: Re:
Publicado por: USUARIONUEVO en 17-04-2015, 22:57 (Viernes)
Metele un if cuando valide, si encuentra un carácter no valido no le dejas continuar

si claro , un if ... ¿con que condicionante ?


la variable que llevara la mac escrita o lo que se va a buscar sera

"$preguntar"

entonces debe ser igua a xx:xx:xx

donde esas x, solo pueden ser caracteres validos del charset


Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 17-04-2015, 23:02 (Viernes)
no se si esto seria correcto  




Código: [Seleccionar]
charset="[A-F,0-9,a-f][A-F,0-9,a-f]:[A-F,0-9,a-f][A-F,0-9,a-f]:[A-F,0-9,a-f][A-F,0-9,a-f]"

if [ ! $preguntar = $charset ]; then
................
fi



este mini test , respoonde mal ,,,cuando la consulta esta bien ,con solo numeros..


Código: [Seleccionar]
#!/bin/bash

charset="[A-F,0-9,a-f][A-F,0-9,a-f]:[A-F,0-9,a-f][A-F,0-9,a-f]:[A-F,0-9,a-f][A-F,0-9,a-f]"
preguntar=11:22:33

if [ ! $preguntar = $charset ]; then
echo mal
else
echo bien
fi
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: warcry en 17-04-2015, 23:50 (Viernes)
yo lo haria asi

Código: [Seleccionar]
#!/bin/bash
read n
echo "$n" > /root/Desktop/1.lst
if [ -z "`grep -i '[g-z]' /root/Desktop/1.lst`" ]; then
echo "hola"
fi

con read n leo la mac que meto a mano
la mando a un fichero con la segunda linea

luego le digo que mire que no contenga ningun caracter desde la g hasta la z y con el parametro -i le digo que no diferencie entre mayusculas y minusculas

si la mac es correcta devuelve hola, si no no hace nada finaliza.

lo que no me hago es como introducir los caracteres especiales

ejemplo 11:22:3ç 

la cedilla es una cosa muy tipica que metes cuando das a enter
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 18-04-2015, 00:14 (Sábado)
por eso pense a la inversa


definir que valores son los correctos y como

??:??:??

donde interrogantes = a algu nvalor de los permitidos ...si no , error.
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: warcry en 18-04-2015, 00:25 (Sábado)
por eso pense a la inversa


definir que valores son los correctos y como

??:??:??

donde interrogantes = a algu nvalor de los permitidos ...si no , error.

negativo, porque con el grep con que haya un solo valor correcto en la cadena te va a dar un falso positvo

ejemplo

Código: [Seleccionar]
wifiway ~ # grep -i '[g-z]' /root/Desktop/1.lst
j1
wifiway ~ # grep -i '[\W]' /root/Desktop/1.lst
wifiway ~ # grep -i '[;]' /root/Desktop/1.lst
;
wifiway ~ # grep -i '[a-f/:/0-9]' /root/Desktop/1.lst
11:2ç
wifiway ~ # grep -i '[a-f/:/0-9]' /root/Desktop/1.lst
11;22
wifiway ~ # grep -i '[a-f/:/0-9]' /root/Desktop/1.lst
11:22
wifiway ~ #

en todas sale que existe la cadena, porque en todas hay un valor que cumple el criterio, el 1 esta permitido luego ya vale, por lo que tienes que hacerlo a la inversa, con que haya un carácter no valido directamente break y devuelves mensaje de error

lo que tendras que añadir a mano los caracteres especiales, porque yo no se incluirlos todos con una expresion  :-\

ejemplo

Código: [Seleccionar]
if [ -z "`grep -i '[g-zç;]' /root/Desktop/1.lst`" ]; then
ahi la cedilla y el punto y coma tambien son caracteres no validos, luego tendrias que ir añadiendo y luego tener cuidado de encasillar o con barra o contrabarra los caracteres con significado como $
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 18-04-2015, 00:35 (Sábado)
nope


por que se comprobara campo por campo


se verificara cada una de las X en la cadena...si una falla,pa casa.

comprobar primera x , segunda , las seis.

ademas de que entre cada dos valors, exista un   :   que divide los octetos.


verificar campos

12 45 78  cumplen todos con loa valores permitidos
4 6 comprobar son :


necesito que sea estricto ,por eso mismo de darle sin querer a un caracter raro ,,,

por eso intente

[A-F,a-f,0-9][A-F,a-f,0-9]:
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: warcry en 18-04-2015, 00:40 (Sábado)
si lo quieres hacer asi, tendras que picar mas codigo

lees cadena la mandas a un archivo, con sed eliminas los dos puntos

y con cut vas aislando caracter por caracter y los vas mandando a temporales.

comparas los temporales con los caracteres validos y si alguno no coincide pues break.

pero como digo son muchas lineas de codigo
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: 5.1 en 18-04-2015, 00:45 (Sábado)
A ver. no solo tienes que tener en cuenta que la posicion sea hexa o los dos puntos... piensa que en el primer byte de la mac, no todas las combinaciones hexadecimales están permitidas, justamente el otro día abri un post hablando de eso

https://foro.seguridadwireless.net/tecnologia-de-redes/pregunta-sobre-macadress/msg328926/?boardseen#new (https://foro.seguridadwireless.net/tecnologia-de-redes/pregunta-sobre-macadress/msg328926/?boardseen#new)

por tanto no te vale con validar dígito a digito si es hexadecimal o los dos puntos,
Hablando con Geminis_Demon sobre el tema, aportó la solución más elegante creo yo....


Código: [Seleccionar]
if [ "$(echo "$MAC"|egrep -x "([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}")" ] && [ $(($(echo "ibase=16; ${MAC:0:2}"|bc)%2)) -eq 0 ]; then

echo "FORMATO CORRECTO"
else
echo "FORMATO INCORRECTO"
fi

Y USUARIO, tio, deja de toquetear que has cepillado el foro medía tarde  ;D ;D ;D
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 18-04-2015, 00:51 (Sábado)
Y USUARIO, tio, deja de toquetear que has cepillado el foro medía tarde  ;D ;D ;D

eso no lo he entendio ,jja , si me fui a dormir a las 5 de la tarde ,y este post lo abri de nohe ya.   ;D
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: warcry en 18-04-2015, 00:52 (Sábado)
edito: estaba haciendolo mal

me voy pa la piltra que ya no doy pie con bola
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 18-04-2015, 00:54 (Sábado)
VENIA A LO MISMO ...


SIEMPRE DICE INCORRECTO


Código: [Seleccionar]
#!/bin/bash
MAC=11:22:3B
if [ "$(echo "$MAC"|egrep -x "([[:xdigit:]]{2}:){5}[[:xdigit:]]{2}")" ] && [ $(($(echo "ibase=16; ${MAC:0:2}"|bc)%2)) -eq 0 ]; then

echo "FORMATO CORRECTO"
else
echo "FORMATO INCORRECTO"
fi
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: 5.1 en 18-04-2015, 00:56 (Sábado)
Jejejeje, ya se lo diré a Geminis que me la paso el... Yo valido en mi script así :

Citar
validar_mac() {
let mac_correcta=1
if [ -z $MAC_A_VALIDAR ] || [ "${#MAC_A_VALIDAR}" != 17 ]
then
  let mac_correcta=1
  return
fi

for ((i=1; i<=17; i++)); do
    caracter=`expr substr $MAC_A_VALIDAR $i 1`
    case $i in
      3|6|9|12|15) if [ $caracter != ":" ]; then 
          let mac_correcta=1
          return
         fi 
         ;;
      2) if [[ $caracter =~ [ACEace02468] ]]; then
               let mac_correcta=0
                 else
               let mac_correcta=1
               return
                 fi
                 ;;
      1|4|5|7|8|10|11|13|14|16|17) if [[ $caracter =~ [A-Fa-f0-9] ]]; then
               let mac_correcta=0
                 else
               let mac_correcta=1
               return
                 fi
                 ;;
    esac
done
}

Y decía lo de toquetear pq el foro lleva media tarde con "Internal Server error"
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: warcry en 18-04-2015, 00:56 (Sábado)
con tres sip

con seis nop

Código: [Seleccionar]
wifiway Desktop # sh 1.sh
00:1a:2b
FORMATO INCORRECTO
wifiway Desktop # sh 1.sh
00:1a:2b:00:00:01
FORMATO CORRECTO
wifiway Desktop #
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 18-04-2015, 00:57 (Sábado)
con tres sip

con seis nop

Código: [Seleccionar]
wifiway Desktop # sh 1.sh
00:1a:2b
FORMATO INCORRECTO
wifiway Desktop # sh 1.sh
00:1a:2b:00:00:01
FORMATO CORRECTO
wifiway Desktop #

normal , para buscar fabricante solo se necesitan 6 ,el resto , si añades de mas, que de error.
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: 5.1 en 18-04-2015, 01:00 (Sábado)
LA funciones que os he puesto, tanto una como la otra son para una mac completa claro, si la quieres solo para tres pues hay que adaptarla un poco

Código: [Seleccionar]
#!/bin/bash


validar_mac() {
if [ -z $MAC_A_VALIDAR ] || [ "${#MAC_A_VALIDAR}" != 8 ]
then
  return 1
fi

for ((i=1; i<=8; i++)); do
    caracter=`expr substr $MAC_A_VALIDAR $i 1`
    case $i in
      3|6) if [ $caracter != ":" ]; then return 1;fi ;;
      2) if [[ $caracter =~ [ACEace02468] ]]; then continue;else return 1; fi ;;
      1|4|5|7|8) if [[ $caracter  =~ [A-Fa-f0-9] ]]; then continue; else return 1; fi ;;
    esac
done
return 0
}

MAC_A_VALIDAR=$1
if validar_mac
then
  echo "CORRECTA"
else
  echo "ERROR EN EL FORMATO DE LA MAC"
fi

Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 18-04-2015, 01:26 (Sábado)
en la de geminis cambiar el 5 por un 2 y ya valida con los 6 primeros charts  >:(


Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: vk496 en 18-04-2015, 01:28 (Sábado)
Quieres validar toda la MAC o solo los primeros bytes de la MAC?

Porque si nos metemos en materia, también hay MAC con mas bytes de lo habitual (eso si, son raras de encontrar)

@USUARIONUEVO

Con mi primer script, Chamac, me suena haber implementado eso. A lo mejor te sirve.

Si no, lo que se me ocurre es:

Una función que avance carácter por carácter buscando que solo sean 0-9A-F y tenga en cuenta que la [ posición_indice_actual MOD 3] tiene que ser igual a ":".

Salu2
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: 5.1 en 18-04-2015, 01:31 (Sábado)
en la de geminis cambiar el 5 por un 2 y ya valida con los 6 primeros charts  >:(




Y en una jodida linea, que artista :)
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 18-04-2015, 01:42 (Sábado)
la de geminis cumple perfecta


{5}  por  {2}  y anulamos mirar las tres ultimos pares



Bueno , eso ya lo tengo , ahora me falta busqueda inversa...


buscar las macs de un fabricante  por ejemplo BELKIN ...1,2,3 responda otra vez.  ;D

lo del fabricante y mostrar todas las macs de la oui es mas facil ... por que no hay que delimitar nada, todos los caracteres valen.   ;D ;D ;D



PD: voy a implementar antes un if , ...que compruebe que el fichero oui de aircrack ,esta en su sitio ..y si no , pa fuera.
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: 5.1 en 18-04-2015, 01:51 (Sábado)
Te refieres a esto?

Código: [Seleccionar]
grep "Belkin" /root/swireless/patrones_conocidos.txt | awk {'print $1'}
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 18-04-2015, 02:17 (Sábado)
Te refieres a esto?

Código: [Seleccionar]
grep "Belkin" /root/swireless/patrones_conocidos.txt | awk {'print $1'}

sip , pero en la oui de aicrack .. ;D

/etc/aircrack-ng/airodump-ng-oui.txt
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 18-04-2015, 03:07 (Sábado)
Bueno , id preparando las piedras  ;D ;D ;D ;D ;D ;D ;D



Código: [Seleccionar]
#!/bin/bash

# Script consultar_fabricante by USUARIONUEVO @ www.seguridadwireless.net
# La funcion  validar es 99% de geminis_demon @ www.seguridadwireless.net
# Agradecimientos a varios usuarios del foro que ayudaron (warcry/5.1/vk496)

VERSION=1.4

menu=$(zenity --list --column "Elige una opcion" "1-Buscar_fabricante_de_una_MAC" "2-Buscar_MACS_de_un_FABRICANTE" "3-Salir")

function oui() {
if [ ! -f /etc/aircrack-ng/airodump-ng-oui.txt ]; then
zenity --error --text "No se puede buscar nada ... no existe el fichero /etc/aircrack-ng/airodump-ng-oui.txt"
"$0"
fi
}

function preguntar() {
preguntar=$(zenity --entry --text "Introduce los 6 primeros caracteres Ejemplo: 00:1a:2b")
if [ -z $preguntar ]; then
zenity --error --text "El campo de busqueda esta vacio"
"$0"
fi
}

function validar() {
if [ "$(echo "$preguntar"|egrep -x "([[:xdigit:]]{2}:){2}[[:xdigit:]]{2}")" ] && [ $(($(echo "ibase=16; ${preguntar:0:2}"|bc)%2)) -eq 0 ]; then
echo ""
else
zenity --error --text "El formato de la mac no es correcto"
"$0"
fi
}

function busqueda() {
consulta=`cat /etc/aircrack-ng/airodump-ng-oui.txt | grep -i $(echo "$preguntar" | tr ':' '-')`
respuesta=$(echo $consulta | cut -d ")" -f2)
if [ -z "$respuesta" ]; then
respuesta=$(echo "Desconocido")
fi
preguntar=$(zenity --info --text "El fabricante de la mac $preguntar es $respuesta")
}

function preguntar_fabricante() {
preguntar=$(zenity --entry --text "Introduce el nombre del fabricante Ejemplo: Belkin")
if [ -z $preguntar ]; then
zenity --error --text "El campo de busqueda esta vacio"
"$0"
fi
}

function busqueda_fabricante() {
respuesta=$(grep -r -i "$preguntar" /etc/aircrack-ng/airodump-ng-oui.txt | awk {'print $1'} | tr ':' '-')
if [ -z "$respuesta" ]; then
respuesta=$(echo "No se encontro ninguna")
fi
preguntar=$(zenity --list --column "Macs conocidas de $preguntar" "$respuesta" --height=350)
}

if [ $menu = 1-Buscar_fabricante_de_una_MAC ]; then
oui
preguntar
validar
busqueda
fi

if [ $menu = 2-Buscar_MACS_de_un_FABRICANTE ]; then
oui
preguntar_fabricante
busqueda_fabricante
fi

if [ $menu = 3-Salir ]; then
matar=$(echo "$0" |rev|cut -d/ -f1|rev)
killall "$matar"
fi

"$0"

Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: geminis_demon en 19-04-2015, 00:09 (Domingo)
Mola!  ;D

Pero cuando termino de usar el programa me gustaría cerrarlo.. y no se puede! jajaja

Cuando lo cierras se vuelve a ejecutar el mismo, quitale esto del final "$0" para que se pueda cerrar.

-------------------------------------------------------------------

1-Buscar_fabricante_de_una_MAC

Eso así queda un poco feo.. supongo que lo has hecho así porque al llevar espacios te da error en los "if", pero se soluciona poniendolo entre comillas:

Código: [Seleccionar]
if [ "$menu" = "1 - Buscar fabricante de una MAC" ]; then
oui
preguntar
validar
busqueda
fi

if [ "$menu" = "2 - Buscar MACS de un fabricante" ]; then
oui
preguntar_fabricante
busqueda_fabricante
fi

if [ "$menu" = "3 - Salir" ]; then
matar=$(echo "$0" |rev|cut -d/ -f1|rev)
killall "$matar"
fi

-------------------------------------------------------------------

Cuando estas en la parte en la que tienes que introducir la MAC, si pulsas cancelar te sale otra ventana diciendo que "El campo de busqueda esta vacio", y al cerrar esa ventana ya te lleva al menú, pero creo que lo correcto es que si pulsas caneclar te lleve al menú principal directamente.

Además cuando intentas cerrar el programa te sale otro cartel diciendo "El formato de la mac no es correcto", y me vuelve a llevar al menú, vuelvo a cerrar la ventana para salir del programa y me sale otro cartel diciendo "El campo de busqueda esta vacio", y me vuelve a llevar al menú.

Despues de cerrar 5 veces la ventana del menú principal y otras 5 ventanas de mensajes de error he conseguido salir del programa  ;D
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 19-04-2015, 04:03 (Domingo)
SI clickas sobre salir , se cierra solo.

Hasta que no uses "salir"  , pues..no se puede salir.

lo de escribir asi buscar_mac_de

es por que luego no se por que no admite espacios en las funciones..sitocaste eso, es normal que no se cerrara , se queda en bucle.

if [ $menu = 1-Buscar_fabricante_de_una_MAC ]; then

si la funcion tiene espacios, aunque sea con comillas , entras en bucle... 


Vuelvelo a probar sin modificar nada , veras que si le das salir, se sale bien.

Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: geminis_demon en 19-04-2015, 04:20 (Domingo)
Ok no me había fijado en que había una opción de salir, pero si cierras la ventana o le das a cancelar no se debería volver a ejecutar el solo...

Lo de los espacios si se hacen las comprobaciones correctas no tiene porque entrar en bucle.

Voy a ver como solucionarlo y te digo.
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 19-04-2015, 04:24 (Domingo)
Ok no me había fijado en que había una opción de salir, pero si cierras la ventana o le das a cancelar no se debería volver a ejecutar el solo...

Lo de los espacios si se hacen las comprobaciones correctas no tiene porque entrar en bucle.

Voy a ver como solucionarlo y te digo.

puse con comillas tanto en funcion como en comprobacion ,y se vuelve majareta.  ;)

es la primera vez que toco zenity ,y seguro hay muchas cosas que no se y se pueden mejorar.

creo que se podia hacer que no aparezcan el boton aceptar y cancelar ...

la ides del bucle , (a proposito) ,en el final del script ,es por si quieres buscar otra mac o fabricante y asi hasta que le chusques a salir.



los textos , se pueden usar en formato html , para incluso cambiarle el color , pero empece a tocar y se descoijonaba todo  ;D
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: 5.1 en 19-04-2015, 05:09 (Domingo)
zenity está bien, pero mola más yad (un fork de zenity) y aún mola mucho más gtkdialog :)

En fín, cierra la puerta al salir :)
Buenas noches
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: geminis_demon en 19-04-2015, 05:25 (Domingo)
USUARIONUEVO mira a ver que te parece así:

Código: [Seleccionar]
#!/bin/bash

# Script consultar_fabricante by USUARIONUEVO @ www.seguridadwireless.net
# La funcion  validar es 99% de geminis_demon @ www.seguridadwireless.net
# Agradecimientos a varios usuarios del foro que ayudaron (warcry/5.1/vk496)

VERSION=1.4

menu=$(zenity --list --cancel-label="Salir" --ok-label="Seleccionar" --column "Elige una opcion" "1 - Buscar fabricante de una MAC" "2 - Buscar MACS de un fabricante"; [ $? -ne 0 ] && echo "exit")

function oui() {
if [ ! -f /etc/aircrack-ng/airodump-ng-oui.txt ]; then
zenity --error --ok-label="OK"--text "No se puede buscar nada ... no existe el fichero /etc/aircrack-ng/airodump-ng-oui.txt"
"$0"
fi
}

function preguntar() {
preguntar=$(zenity --entry --cancel-label="Salir" --ok-label="OK" --text "Introduce los 3 primeros pares de la MAC. Ejemplo: 00:1a:2b"; [ $? -ne 0 ] && echo "exit")
if [ "$preguntar" = "exit" ]; then
exit
elif [ -z $preguntar ]; then
zenity --error --ok-label="OK" --text "El campo de busqueda esta vacio"
"$0"
fi
}

function validar() {
if [ "$(echo "$preguntar"|egrep -x "([[:xdigit:]]{2}:){2}[[:xdigit:]]{2}")" ] && [ $(($(echo "ibase=16; ${preguntar:0:2}"|bc)%2)) -eq 0 ]; then
echo ""
else
zenity --error --ok-label="OK" --text "El formato de la mac no es correcto"
"$0"
fi
}

function busqueda() {
consulta=`cat /etc/aircrack-ng/airodump-ng-oui.txt | grep -i $(echo "$preguntar" | tr ':' '-')`
respuesta=$(echo $consulta | cut -d ")" -f2)
if [ -z "$respuesta" ]; then
respuesta=$(echo "Desconocido")
fi
preguntar=$(zenity --info --ok-label="OK" --text "El fabricante de la mac $preguntar es $respuesta")
}

function preguntar_fabricante() {
preguntar=$(zenity --entry --cancel-label="Salir" --ok-label="OK" --text "Introduce el nombre del fabricante. Ejemplo: Belkin" ; [ $? -ne 0 ] && echo "exit")
if [ "$preguntar" = "exit" ]; then
exit
elif [ -z $preguntar ]; then
zenity --error --ok-label="OK" --text "El campo de busqueda esta vacio"
"$0"
fi
}

function busqueda_fabricante() {
respuesta=$(grep -r -i "$preguntar" /etc/aircrack-ng/airodump-ng-oui.txt | awk {'print $1'} | tr ':' '-')
if [ -z "$respuesta" ]; then
respuesta=$(echo "No se encontro ninguna")
fi
preguntar=$(zenity --list --cancel-label="Salir" --ok-label="OK" --column "Macs conocidas de $preguntar" "$respuesta" --height=350 ; [ $? -ne 0 ] && echo "exit")
}

if [ "$menu" = "exit" ]; then
exit
elif [ "$menu" = "1 - Buscar fabricante de una MAC" ]; then
oui
preguntar
validar
busqueda
elif [ "$menu" = "2 - Buscar MACS de un fabricante" ]; then
oui
preguntar_fabricante
busqueda_fabricante
else
zenity --error --ok-label="OK" --text "No has seleccionado ninguna opcion" && "$0"
fi
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 19-04-2015, 06:31 (Domingo)
he borrado mis dos ultimos posts ,por que meti la gamba al cambiar y añadir varios $0

solo dejo tu code, pero en la busqueda de macs de un fabricante el tr al final al reves,para que muestre la lista de macs del formato correcto en vez de 11-22-33


no se pueden hacer mas que una consulta y el script se cierra ...  me refiero a poder volver para realizar mas consultas.


Código: [Seleccionar]
#!/bin/bash

# Script consultar_fabricante by USUARIONUEVO @ www.seguridadwireless.net
# La funcion  validar es 99% de geminis_demon @ www.seguridadwireless.net
# Agradecimientos a varios usuarios del foro que ayudaron (warcry/5.1/vk496)

VERSION=1.4

menu=$(zenity --list --cancel-label="Salir" --ok-label="Seleccionar" --column "Elige una opcion" "1 - Buscar fabricante de una MAC" "2 - Buscar MACS de un fabricante"; [ $? -ne 0 ] && echo "exit")

function oui() {
if [ ! -f /etc/aircrack-ng/airodump-ng-oui.txt ]; then
zenity --error --ok-label="OK"--text "No se puede buscar nada ... no existe el fichero /etc/aircrack-ng/airodump-ng-oui.txt"
"$0"
fi
}

function preguntar() {
preguntar=$(zenity --entry --cancel-label="Salir" --ok-label="OK" --text "Introduce los 3 primeros pares de la MAC. Ejemplo: 00:1a:2b"; [ $? -ne 0 ] && echo "exit")
if [ "$preguntar" = "exit" ]; then
exit
elif [ -z $preguntar ]; then
zenity --error --ok-label="OK" --text "El campo de busqueda esta vacio"
"$0"
fi
}

function validar() {
if [ "$(echo "$preguntar"|egrep -x "([[:xdigit:]]{2}:){2}[[:xdigit:]]{2}")" ] && [ $(($(echo "ibase=16; ${preguntar:0:2}"|bc)%2)) -eq 0 ]; then
echo ""
else
zenity --error --ok-label="OK" --text "El formato de la mac no es correcto"
"$0"
fi
}

function busqueda() {
consulta=`cat /etc/aircrack-ng/airodump-ng-oui.txt | grep -i $(echo "$preguntar" | tr ':' '-')`
respuesta=$(echo $consulta | cut -d ")" -f2)
if [ -z "$respuesta" ]; then
respuesta=$(echo "Desconocido")
fi
preguntar=$(zenity --info --ok-label="OK" --text "El fabricante de la mac $preguntar es $respuesta")
}

function preguntar_fabricante() {
preguntar=$(zenity --entry --cancel-label="Salir" --ok-label="OK" --text "Introduce el nombre del fabricante. Ejemplo: Belkin" ; [ $? -ne 0 ] && echo "exit")
if [ "$preguntar" = "exit" ]; then
exit
elif [ -z $preguntar ]; then
zenity --error --ok-label="OK" --text "El campo de busqueda esta vacio"
"$0"
fi
}

function busqueda_fabricante() {
respuesta=$(grep -r -i "$preguntar" /etc/aircrack-ng/airodump-ng-oui.txt | awk {'print $1'} | tr '-' ':')
if [ -z "$respuesta" ]; then
respuesta=$(echo "No se encontro ninguna")
fi
preguntar=$(zenity --list --cancel-label="Salir" --ok-label="OK" --column "Macs conocidas de $preguntar" "$respuesta" --height=350 ; [ $? -ne 0 ] && echo "exit")
}

if [ "$menu" = "exit" ]; then
exit
elif [ "$menu" = "1 - Buscar fabricante de una MAC" ]; then
oui
preguntar
validar
busqueda
elif [ "$menu" = "2 - Buscar MACS de un fabricante" ]; then
oui
preguntar_fabricante
busqueda_fabricante
else
zenity --error --ok-label="OK" --text "No has seleccionado ninguna opcion" && "$0"
fi
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 19-04-2015, 06:34 (Domingo)
jajajajajajaja  me partooooooooooooooo

buscar macs de un fabricante , para que me de error pongo  


pene


y salen dos resultados , por que hay una fabricante  llamado  openelec



mmmmm , elige opcion y no rellenes campo ... cuando vuellvas al menu inicial intenta salir   ;)
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 19-04-2015, 06:45 (Domingo)
bueno ,  ya vi lo que pasaba ..

en donde zenity informe de un error, al final debe tener el      && "$0"

varias funciones informan del error, y ya despues hacen un reset y hay se pinza el script , deb ser todo en una linea con un &&


solo falta poder hacer mas de una consulta ...es decir que retorne ..que se supone es lo mismo , añadir el && en la ultima accion de la funcion completa

Código: [Seleccionar]
#!/bin/bash

# Script consultar_fabricante by USUARIONUEVO @ www.seguridadwireless.net
# La funcion  validar es 99% de geminis_demon @ www.seguridadwireless.net
# Agradecimientos a varios usuarios del foro que ayudaron (warcry/5.1/vk496)

VERSION=1.4

menu=$(zenity --list --cancel-label="Salir" --ok-label="Seleccionar" --column "Elige una opcion" "1 - Buscar fabricante de una MAC" "2 - Buscar MACS de un fabricante"; [ $? -ne 0 ] && echo "exit")

function oui() {
if [ ! -f /etc/aircrack-ng/airodump-ng-oui.txt ]; then
zenity --error --ok-label="OK"--text "No se puede buscar nada ... no existe el fichero /etc/aircrack-ng/airodump-ng-oui.txt" && "$0"
fi
}

function preguntar() {
preguntar=$(zenity --entry --cancel-label="Salir" --ok-label="OK" --text "Introduce los 3 primeros pares de la MAC. Ejemplo: 00:1a:2b"; [ $? -ne 0 ] && echo "exit")
if [ "$preguntar" = "exit" ]; then
exit
elif [ -z $preguntar ]; then
zenity --error --ok-label="OK" --text "El campo de busqueda esta vacio" && "$0"
fi
}

function validar() {
if [ "$(echo "$preguntar"|egrep -x "([[:xdigit:]]{2}:){2}[[:xdigit:]]{2}")" ] && [ $(($(echo "ibase=16; ${preguntar:0:2}"|bc)%2)) -eq 0 ]; then
echo ""
else
zenity --error --ok-label="OK" --text "El formato de la mac no es correcto" && "$0"
fi
}

function busqueda() {
consulta=`cat /etc/aircrack-ng/airodump-ng-oui.txt | grep -i $(echo "$preguntar" | tr ':' '-')`
respuesta=$(echo $consulta | cut -d ")" -f2)
if [ -z "$respuesta" ]; then
respuesta=$(echo "Desconocido")
fi
preguntar=$(zenity --info --ok-label="OK" --text "El fabricante de la mac $preguntar es $respuesta")
}

function preguntar_fabricante() {
preguntar=$(zenity --entry --cancel-label="Salir" --ok-label="OK" --text "Introduce el nombre del fabricante. Ejemplo: Belkin" ; [ $? -ne 0 ] && echo "exit")
if [ "$preguntar" = "exit" ]; then
exit
elif [ -z $preguntar ]; then
zenity --error --ok-label="OK" --text "El campo de busqueda esta vacio" && "$0"
fi
}

function busqueda_fabricante() {
respuesta=$(grep -r -i "$preguntar" /etc/aircrack-ng/airodump-ng-oui.txt | awk {'print $1'} | tr '-' ':')
if [ -z "$respuesta" ]; then
respuesta=$(echo "No se encontro ninguna")
fi
preguntar=$(zenity --list --cancel-label="Salir" --ok-label="OK" --column "Macs conocidas de $preguntar" "$respuesta" --height=350 ; [ $? -ne 0 ] && echo "exit")
}

if [ "$menu" = "exit" ]; then
exit
elif [ "$menu" = "1 - Buscar fabricante de una MAC" ]; then
oui
preguntar
validar
busqueda
elif [ "$menu" = "2 - Buscar MACS de un fabricante" ]; then
oui
preguntar_fabricante
busqueda_fabricante
else
zenity --error --ok-label="OK" --text "No has seleccionado ninguna opcion" && "$0"
fi
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 19-04-2015, 07:49 (Domingo)
me voy a mimir , creo que lo mejor sera pasarlo a yad.

Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: geminis_demon en 19-04-2015, 09:28 (Domingo)
Este ya puede hacer mas de una consulta:

Código: [Seleccionar]
#!/bin/bash

# Script consultar_fabricante by USUARIONUEVO @ www.seguridadwireless.net
# La funcion  validar es 99% de geminis_demon @ www.seguridadwireless.net
# Agradecimientos a varios usuarios del foro que ayudaron (warcry/5.1/vk496)

VERSION=1.4

menu=$(zenity --list --cancel-label="Salir" --ok-label="Seleccionar" --column "Elige una opcion" "1 - Buscar fabricante de una MAC" "2 - Buscar MACS de un fabricante"; [ $? -ne 0 ] && echo "exit")

function oui() {
if [ ! -f /etc/aircrack-ng/airodump-ng-oui.txt ]; then
zenity --error --ok-label="OK"--text "No se puede buscar nada ... no existe el fichero /etc/aircrack-ng/airodump-ng-oui.txt" && "$0"
fi
}

function preguntar() {
preguntar=$(zenity --entry --cancel-label="Salir" --ok-label="OK" --text "Introduce los 3 primeros pares de la MAC. Ejemplo: 00:1a:2b"; [ $? -ne 0 ] && echo "exit")
if [ "$preguntar" = "exit" ]; then
exit
elif [ -z $preguntar ]; then
zenity --error --ok-label="OK" --text "El campo de busqueda esta vacio" && "$0"
fi
}

function validar() {
if [ "$(echo "$preguntar"|egrep -x "([[:xdigit:]]{2}:){2}[[:xdigit:]]{2}")" ] && [ $(($(echo "ibase=16; ${preguntar:0:2}"|bc)%2)) -eq 0 ]; then
echo ""
else
zenity --error --ok-label="OK" --text "El formato de la mac no es correcto" && "$0"
fi
}

function busqueda() {
consulta=`cat /etc/aircrack-ng/airodump-ng-oui.txt | grep -i $(echo "$preguntar" | tr ':' '-')`
respuesta=$(echo $consulta | cut -d ")" -f2)
if [ -z "$respuesta" ]; then
respuesta=$(echo "Desconocido")
fi
preguntar=$(zenity --info --ok-label="OK" --text "El fabricante de la mac $preguntar es $respuesta")
}

function preguntar_fabricante() {
preguntar=$(zenity --entry --cancel-label="Salir" --ok-label="OK" --text "Introduce el nombre del fabricante. Ejemplo: Belkin" ; [ $? -ne 0 ] && echo "exit")
if [ "$preguntar" = "exit" ]; then
exit
elif [ -z $preguntar ]; then
zenity --error --ok-label="OK" --text "El campo de busqueda esta vacio" && "$0"
fi
}

function busqueda_fabricante() {
respuesta=$(grep -r -i "$preguntar" /etc/aircrack-ng/airodump-ng-oui.txt | awk {'print $1'} | tr '-' ':')
if [ -z "$respuesta" ]; then
respuesta=$(echo "No se encontro ninguna")
fi
preguntar=$(zenity --list --cancel-label="Salir" --ok-label="OK" --column "Macs conocidas de $preguntar" "$respuesta" --height=350 ; [ $? -ne 0 ] && echo "exit")
}

if [ "$menu" = "exit" ]; then
exit
elif [ "$menu" = "1 - Buscar fabricante de una MAC" ]; then
oui
preguntar
validar
busqueda
"$0"
elif [ "$menu" = "2 - Buscar MACS de un fabricante" ]; then
oui
preguntar_fabricante
busqueda_fabricante
"$0"
else
zenity --error --ok-label="OK" --text "No has seleccionado ninguna opcion" && "$0"
fi
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 19-04-2015, 21:00 (Domingo)
men , zenity se vuelve loko ..

por eso dije pasarlo a yad.


mira , haz consultas y dejalas en blanco , hazlo dos veces y ya no puedes salir ...se queda atrapado.

consulta de mac y la dejas en blanco ,da el error, y v¡uelve a menu ,,,,elije la opcion 2 buscar macs de un fabricante , dejalo en blanco ... y vuala...intenta salir..que ya no puedes y te dara varios mensajes,.
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: 5.1 en 20-04-2015, 01:07 (Lunes)
Prueba a meterle la mac en minusculas  ;D ;D
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 20-04-2015, 01:16 (Lunes)
Prueba a meterle la mac en minusculas  ;D ;D


da igual tieneun -i en el grep


el problema es no poder volver de manera facil a una d elas pantallas , ...cuando vueolves , el script queda loko-.
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: 5.1 en 20-04-2015, 01:24 (Lunes)
Pero no llega a ese egrep -i, peta en la validación y se cierra... ojo, al menos en el ultimo código que ha puesto geminis
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 20-04-2015, 01:25 (Lunes)
Pero no llega a ese egrep -i, peta en la validación y se cierra... ojo, al menos en el ultimo código que ha puesto geminis

zenity KK  ,  ;D
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: 5.1 en 20-04-2015, 01:25 (Lunes)
Tio, es más complicado, pero mirate GTKdialog....

Si quieres te echo una manita
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 20-04-2015, 08:15 (Lunes)
lo he dejado estar , de hecho acabo de subir iso de desarrollo y lleva la versión script del buscador de macs.  :'(
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: 5.1 en 20-04-2015, 16:00 (Lunes)
Ahi lo tienes .... https://mega.co.nz/#!d113VLSI!FVxAC86cPqIQwelv0peiD6b67Ct7c1s7UdcdX3Iso4s (https://mega.co.nz/#!d113VLSI!FVxAC86cPqIQwelv0peiD6b67Ct7c1s7UdcdX3Iso4s)

Código: [Seleccionar]
#!/bin/bash
if [ ! -f /etc/aircrack-ng/airodump-ng-oui.txt ]; then
    yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: No existe el archivo /etc/aircrack-ng/airodump-ng-oui.txt, imposible continuar" --fixed --on-top --center --window-icon=error
    exit
fi

[ -z $GTKDIALOG ] && GTKDIALOG=gtkdialog

# VERSION DEL SCRIPT
VERSION="v1.5"

TMPDIR=/tmp/"`basename $0`"
rm -rf "$TMPDIR"
mkdir -p "$TMPDIR"

ARCHIVO_TXT_FABRICANTE="$TMPDIR""/txt_fabricante"
ARCHIVO_TXT_MACS="$TMPDIR""/txt_macs"
ARCHIVO_TXT_TEMP="$TMPDIR/txt_temp"

export ARCHIVO_TXT_FABRICANTE
export ARCHIVO_TXT_MACS
export ARCHIVO_TXT_TEMP

rm $ARCHIVO_TXT_FABRICANTE 2>/dev/null
rm $ARCHIVO_TXT_MACS 2>/dev/null

touch $ARCHIVO_TXT_FABRICANTE
touch $ARCHIVO_TXT_MACS


function buscar_fabricante() {
    rm $ARCHIVO_TXT_FABRICANTE 2>/dev/null
    touch $ARCHIVO_TXT_FABRICANTE
    
    if [ -z $MAC_A_BUSCAR ] || [ "${#MAC_A_BUSCAR}" != 8 ]
    then
yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: Error en el formato de la MAC introducida" --fixed --on-top --center --window-icon=error
return
    fi    
    for ((i=1; i<=8; i++)); do
caracter=`expr substr $MAC_A_BUSCAR $i 1`
case $i in
   3|6) if [ $caracter != ":" ]
then
   yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: Error en el formato de la MAC introducida" --fixed --on-top --center --window-icon=error
   return
        fi ;;
   2) if [[ $caracter =~ [ACEace02468] ]]
        then
   continue
        else
   yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: Error en el formato de la MAC introducida" --fixed --on-top --center --window-icon=error
   return
fi ;;
   1|4|5|7|8) if [[ $caracter  =~ [A-Fa-f0-9] ]]
      then
continue
      else
yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: Error en el formato de la MAC introducida" --fixed --on-top --center --window-icon=error
return
      fi ;;
esac
    done
    
    consulta=`cat /etc/aircrack-ng/airodump-ng-oui.txt | grep -i $(echo "$MAC_A_BUSCAR" | tr ':' '-')`
    respuesta=$(echo $consulta | cut -d ")" -f2)
    if [ -z "$respuesta" ]; then
      echo "DESCONOCIDO" > $ARCHIVO_TXT_FABRICANTE
    else
      echo $respuesta > $ARCHIVO_TXT_FABRICANTE
    fi
}
export -f buscar_fabricante

function buscar_macs()
{
  rm $ARCHIVO_TXT_MACS 2>/dev/null
  touch $ARCHIVO_TXT_MACS
  if [ -z "$FABRICANTE_A_BUSCAR" ]
  then
    yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: No has introducido ningún fabricante" --fixed --on-top --center --window-icon=error
    return
  fi
  respuesta=$(grep -r -i "$FABRICANTE_A_BUSCAR" /etc/aircrack-ng/airodump-ng-oui.txt | awk {'print $1'} | tr ':' '-')
  if [ -z "$respuesta" ]; then
      yad --image "error" --title "ERROR" --button=gtk-ok:0 --text "<b>ERROR</b>: No has introducido ningún fabricante" --fixed --on-top --center --window-icon=error
      return
  fi
  
  echo $respuesta > $ARCHIVO_TXT_TEMP
  tr ' ' '\n' < $ARCHIVO_TXT_TEMP > $ARCHIVO_TXT_MACS
 
}
export -f buscar_macs






MAIN_DIALOG='
<window title="BUSCADOR DE MACS/FABRICANTES '${VERSION}'" resizable="false" window_position="1" width-request="550" height-request="350"  border-width="6" image-name="/usr/share/pixmaps/menu-wifislax.png">
<vbox>
<frame>
   <vbox spacing="10">
<text use-markup="true">
<label>"<span color='"'red'"' font-family='"'purisa'"' weight='"'bold'"' size='"'x-large'"'> BUSCAR FABRICANTE DE UNA MAC</span>"</label>
</text>
<hseparator></hseparator>
<text xalign="0.5" width-chars="60" use-markup="true">
<label>"<span color='"'blue'"' weight='"'bold'"'>INTRODUCE LOS TRES PRIMEROS PARES DE LA MAC A BUSCAR
                                  (Ej: 00:1A:2B)</span>"</label>
</text>
<hbox homogenous="false">
     <text xalign="0" yalign="1" space-fill="true"  space-expand="true" auto-refresh="true">
         <variable export="true">TXT_MAC</variable>
         <input file>"'"$ARCHIVO_TXT_FABRICANTE"'"</input>
     </text>
     <entry max-length="8" tooltip-text="MACADRESS A BUSCAR"  space-fill="false">
 <variable>MAC_A_BUSCAR</variable>
     </entry>
           
     <button  space-fill="false"  space-expand="false">
 <input file icon="stock_search"></input>
 <label>BUSCAR</label>
 <action>buscar_fabricante</action>
     </button>
</hbox>
   </vbox>
</frame>
<frame>
      <vbox spacing="10">
<text use-markup="true">
<label>"<span color='"'red'"' font-family='"'purisa'"' weight='"'bold'"' size='"'x-large'"'> BUSCAR MACS DE UN FABRICANTE</span>"</label>
</text>
<hseparator></hseparator>
<text xalign="0" width-chars="60" use-markup="true">
<label>"<span color='"'blue'"' weight='"'bold'"'>INTRODUCE EL NOMBRE DEL FABRICANTE</span>"</label>
</text>
<hbox homogenous="false">
           
     <com*****xtext active="6" button-sensitivity="0" space-fill="true" space-expand="true" auto-refresh="true">
         <variable export="true">TXT_FABRICANTE</variable>
         <input file>"'"$ARCHIVO_TXT_MACS"'"</input>
     </com*****xtext>
     
     
     <entry max-length="8" tooltip-text="FABRICANTE A BUSCAR"  space-fill="false">
 <variable>FABRICANTE_A_BUSCAR</variable>
     </entry>
           
     <button  space-fill="false"  space-expand="false">
 <input file icon="stock_search"></input>
 <label>BUSCAR</label>
 <action>buscar_macs</action>
     </button>
</hbox>
   </vbox>
</frame>
<hbox>
<button cancel></button>
</hbox>
</vbox>
</window>
'


export MAIN_DIALOG

case $1 in
-d | --dump) echo "$MAIN_DIALOG" ;;
*) $GTKDIALOG --program=MAIN_DIALOG ;;
esac


La censura del foro pones asterisco en "combo.box" jajajajaja
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: geminis_demon en 20-04-2015, 18:10 (Lunes)
La verdad es que con gtk queda mucho mejor  >:(

Un par de cosillas:

El campo donde se introduce el fabricante está limitado a 8 caracteres, pero hay fabricantes que tienen nombres mas largos.

Cuando el nombre que has introducido no corresponde a ningún  fabricante te sale el mismo error que cuando dejas el campo vacío, en vez de decir que no ha encontrado el fabricante introducido.
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: 5.1 en 20-04-2015, 18:27 (Lunes)
La verdad es que con gtk queda mucho mejor  >:(

Un par de cosillas:

El campo donde se introduce el fabricante está limitado a 8 caracteres, pero hay fabricantes que tienen nombres mas largos.

Cuando el nombre que has introducido no corresponde a ningún  fabricante te sale el mismo error que cuando dejas el campo vacío, en vez de decir que no ha encontrado el fabricante introducido.

Lo de limitar el campo del fabricante se me ha ido la castaña, es evidente que 8 es irrisorio .... bueno, las dos cosillas son una tontería, cambiarlo son 30 segundos.... de todas maneras no lo he hecho con intención de que sea el definitivo (le he dedicado una par de horas a lo sumo) , es a ver si le gusta a USUARIONUEVO, que el acabe de decidir tema colores, tipografía y esas cosas.... y por cierto, he cambiado la forma de validar la mac por la mia, primero use la tuya pero agregandolo un toupper (echo "$MAC" | awk '{print toupper($0)}'), ya que con minusculas siempre daba error, pero es que incluso así falla, si introduces una cadena sin los dos puntos la da como valida por ejemplo.. Así que nada, la mia son más lineas pero me funciona ;)

PD : Aquí sigo cacharreando con tu bebe jejeje... a ver que pillo ;) ....
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: geminis_demon en 20-04-2015, 21:18 (Lunes)
La función de validar la mac funciona perfectamente en el geminisauditor, que es el script para el que la escribí, si la usáis en otros scripts en la que se dan condiciones diferentes pues lógicamente tendréis que adaptarla a esas condiciones  ^-^ ;D
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: USUARIONUEVO en 21-04-2015, 07:52 (Martes)
holas , estoy de estrangis asi que solo probe muy poco ...


en la linea 65


tr '-' ':'


tr ':' '-'


asi al ver las macs de un fabricante no apareceran en el formato del txt

00-01-02
00-01-cf

Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: 5.1 en 21-04-2015, 08:43 (Martes)
holas , estoy de estrangis asi que solo probe muy poco ...


en la linea 65


tr '-' ':'


tr ':' '-'


asi al ver las macs de un fabricante no apareceran en el formato del txt

00-01-02
00-01-cf



Ok, pués cambio eso y un par de cosillas que comentó Geminis un par de respuestas atrás. Cualqueir otra cosa que no te guste o quieras cambiar lo vas diciendo.

La función de validar la mac funciona perfectamente en el geminisauditor, que es el script para el que la escribí, si la usáis en otros scripts en la que se dan condiciones diferentes pues lógicamente tendréis que adaptarla a esas condiciones  ^-^ ;D

A ver, que creo que no me expresé correctamente, no pongo en duda que esa funcion te funcione eh, vamos, se de lo que eres capaz en bash y jamás se me ocurriria poner tus conocimientos en tela de juicio,... lo que me refería es que tal como estaba en el script que pusisteis (el de zenity) a mi no me funcionaba, y como ya tenia hecha mi propia funcion, por no perder más tiempo es la que usé... pero repito, jamaś quise decir que tu código no funcione, mil disculpas si te dio esa impresión.  >:D
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: geminis_demon en 21-04-2015, 09:05 (Martes)
jejeje dont worry, no problem  :-*
Título: Re: una ayuda con bash HELPPPP AYUDAMEEE !!! :)
Publicado por: vk496 en 21-04-2015, 13:52 (Martes)
Mi granito de arena:

Código: [Seleccionar]
#include <ctype.h>
#include <stdio.h>

int isValidMacAddress(const char* mac) {
    int i = 0;
    int s = 0;

    while (*mac) {
       if (isxdigit(*mac)) {
          i++;
       }
       else if (*mac == ':' || *mac == '-') {

          if (i == 0 || i / 2 - 1 != s)
            return 1;

          ++s;
       }
       else {
           s = -1;
       }


       ++mac;
    }

    if (i == 6 && s == 2) return 0;
else return 1;
}

int main(int argc, char *argv[]){
//cuerpo de la función

int out=isValidMacAddress(argv[1]);

printf("%d", out);

}



Prueba de concepto sobre bash (no se me ocurriria otra forma mas bonita de hacerlo):

Código: [Seleccionar]
#!/bin/bash

echo "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
EAAAALwAAACo/v//AgAAAAAAAAAAAAAA/////wAAAAD/////AAAAAAAAAAABAAAAAQAAAAwAAAC8
ggQIDQAAAAyGBAgEAAAAaIEECAUAAAD0gQQIBgAAAJSBBAgKAAAAZAAAAAsAAAAQAAAAFQAAAAAA
AAADAAAAGJgECAIAAAAgAAAAFAAAABEAAAAXAAAAnIIECBEAAACUggQIEgAAAAgAAAATAAAACAAA
AP7//29kggQI////bwEAAADw//9vWIIECAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAA
AAAAAAAAAAAAAAAAAAAAAAAAAABMlwQIAAAAAAAAAAAGgwQIFoMECCaDBAg2gwQIAAAAAAAAAABH
Q0M6IChHTlUpIDQuOC4zAEdDQzogKEdOVSkgNC44LjQAAAAcAAAAAgAAAAAABAAAAAAAQIMECCIA
AAAAAAAAAAAAABQAAAACAIAAAAAEAAAAAAAAAAAAAAAAACwAAAACAAgBAAAEAAAAAAC8ggQIHgAA
AHCDBAgEAAAADIYECA8AAAAAAAAAAAAAACQAAAACAIMBAAAEAAAAAADkggQIBQAAACCGBAgFAAAA
AAAAAAAAAAB8AAAAAgAAAAAABAEAAAAAQIMECGKDBAguLi9zeXNkZXBzL2kzODYvc3RhcnQuUwAv
Z2xpYmMtdG1wLTBkNTVlODIxZjI0N2ExNTkzZjQzOGVkMjkyYWMzYjhhL2dsaWJjLTIuMjAvY3N1
AEdOVSBBUyAyLjI0LjUxLjAuMwABgIQAAAAEABQAAAAEAWAAAAABMQEAAA4AAABWAAAAAgEI9wAA
AAICBwUBAAACBAdTAAAAAgQHTgAAAAIBBvkAAAACAgUnAQAAAwQFaW50AAIIBQAAAAACCAdJAAAA
AgQFBQAAAAIEBzgBAAACAQYAAQAABBgBAAABGIIAAAAFAyyGBAgFRwAAAAB3AAAAAgBSAAAABAF9
AAAAAAAAAC4uL3N5c2RlcHMvaTM4Ni9jcnRpLlMAL2dsaWJjLXRtcC0wZDU1ZTgyMWYyNDdhMTU5
M2Y0MzhlZDI5MmFjM2I4YS9nbGliYy0yLjIwL2NzdQBHTlUgQVMgMi4yNC41MS4wLjMAAYB3AAAA
AgBkAAAABAHqAAAAKAAAAC4uL3N5c2RlcHMvaTM4Ni9jcnRuLlMAL2dsaWJjLXRtcC0wZDU1ZTgy
MWYyNDdhMTU5M2Y0MzhlZDI5MmFjM2I4YS9nbGliYy0yLjIwL2NzdQBHTlUgQVMgMi4yNC41MS4w
LjMAAYABEQAQBhEBEgEDCBsIJQgTBQAAAAERASUOEwsDDhsOEBcAAAIkAAsLPgsDDgAAAyQACws+
CwMIAAAENAADDjoLOwtJEz8ZAhgAAAUmAEkTAAAAAREAEAZVBgMIGwglCBMFAAAAAREAEAZVBgMI
GwglCBMFAAAAUgAAAAIALgAAAAEB+w4NAAEBAQEAAAABAAABLi4vc3lzZGVwcy9pMzg2AABzdGFy
dC5TAAEAAAAABQJAgwQIAzwBMyE0PSUiAxggWVohIlxbAgEAAQEjAAAAAgAdAAAAAQH7Dg0AAQEB
AQAAAAEAAAEAaW5pdC5jAAAAAABpAAAAAgAtAAAAAQH7Dg0AAQEBAQAAAAEAAAEuLi9zeXNkZXBz
L2kzODYAAGNydGkuUwABAAAAAAUCvIIECAM+ASLZZy8vAgUAAQEABQJwgwQIA8EAAQIEAAEBAAUC
DIYECAPRAAEhPQILAAEBVQAAAAIALQAAAAEB+w4NAAEBAQEAAAABAAABLi4vc3lzZGVwcy9pMzg2
AABjcnRuLlMAAQAAAAAFAuSCBAgDJwE9IQIBAAEBAAUCIIYECAMsAT0hAgEAAQFsb25nIGxvbmcg
aW50AC9nbGliYy10bXAtMGQ1NWU4MjFmMjQ3YTE1OTNmNDM4ZWQyOTJhYzNiOGEvZ2xpYmMtMi4y
MC9jc3UAbG9uZyBsb25nIHVuc2lnbmVkIGludABHTlUgQyA0LjguMyAtZnByZXByb2Nlc3NlZCAt
bWFyY2g9aTQ4NiAtbXR1bmU9aTY4NiAtbXByZWZlcnJlZC1zdGFjay1ib3VuZGFyeT00IC1nIC1P
MyAtc3RkPWdudTk5IC1mZ251ODktaW5saW5lIC1mbWVyZ2UtYWxsLWNvbnN0YW50cyAtZnJvdW5k
aW5nLW1hdGgAdW5zaWduZWQgY2hhcgBzaG9ydCB1bnNpZ25lZCBpbnQAX0lPX3N0ZGluX3VzZWQA
c2hvcnQgaW50AGluaXQuYwBzaXpldHlwZQD/////AAAAALyCBAjaggQIcIMECHSDBAgMhgQIG4YE
CAAAAAAAAAAA/////wAAAADkggQI6YIECCCGBAglhgQIAAAAAAAAAAAALnN5bXRhYgAuc3RydGFi
AC5zaHN0cnRhYgAuaW50ZXJwAC5ub3RlLkFCSS10YWcALmhhc2gALmR5bnN5bQAuZHluc3RyAC5n
bnUudmVyc2lvbgAuZ251LnZlcnNpb25fcgAucmVsLmR5bgAucmVsLnBsdAAuaW5pdAAudGV4dAAu
ZmluaQAucm9kYXRhAC5laF9mcmFtZV9oZHIALmVoX2ZyYW1lAC5jdG9ycwAuZHRvcnMALmpjcgAu
ZHluYW1pYwAuZ290AC5nb3QucGx0AC5kYXRhAC5ic3MALmNvbW1lbnQALmRlYnVnX2FyYW5nZXMA
LmRlYnVnX2luZm8ALmRlYnVnX2FiYnJldgAuZGVidWdfbGluZQAuZGVidWdfc3RyAC5kZWJ1Z19y
YW5nZXMAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAAbAAAAAQAAAAIA
AAA0gQQINAEAABMAAAAAAAAAAAAAAAEAAAAAAAAAIwAAAAcAAAACAAAASIEECEgBAAAgAAAAAAAA
AAAAAAAEAAAAAAAAADEAAAAFAAAAAgAAAGiBBAhoAQAALAAAAAQAAAAAAAAABAAAAAQAAAA3AAAA
CwAAAAIAAACUgQQIlAEAAGAAAAAFAAAAAQAAAAQAAAAQAAAAPwAAAAMAAAACAAAA9IEECPQBAABk
AAAAAAAAAAAAAAABAAAAAAAAAEcAAAD///9vAgAAAFiCBAhYAgAADAAAAAQAAAAAAAAAAgAAAAIA
AABUAAAA/v//bwIAAABkggQIZAIAADAAAAAFAAAAAQAAAAQAAAAAAAAAYwAAAAkAAAACAAAAlIIE
CJQCAAAIAAAABAAAAAAAAAAEAAAACAAAAGwAAAAJAAAAQgAAAJyCBAicAgAAIAAAAAQAAAALAAAA
BAAAAAgAAAB1AAAAAQAAAAYAAAC8ggQIvAIAAC0AAAAAAAAAAAAAAAQAAAAAAAAAcAAAAAEAAAAG
AAAA8IIECPACAABQAAAAAAAAAAAAAAAQAAAABAAAAHsAAAABAAAABgAAAECDBAhAAwAAygIAAAAA
AAAAAAAAEAAAAAAAAACBAAAAAQAAAAYAAAAMhgQIDAYAABkAAAAAAAAAAAAAAAQAAAAAAAAAhwAA
AAEAAAACAAAAKIYECCgGAAALAAAAAAAAAAAAAAAEAAAAAAAAAI8AAAABAAAAAgAAADSGBAg0BgAA
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
LIYECAQAAAARAA4A2gEAAAAAAAAAAAAAEgAAAPcBAABghQQIYQAAABIADAAHAgAARJgECAAAAAAQ
ABgADAIAAECDBAgAAAAAEgAMABMCAAAohgQIBAAAABEADgAaAgAAPJgECAAAAAAQABgAJgIAAB+F
BAgzAAAAEgAMACsCAAAAAAAAAAAAACAAAAA/AgAAfYQECKIAAAASAAwAUQIAADyYBAgAAAAAEQIX
AF0CAAAAAAAAAAAAACAAAAB3AgAAvIIECAAAAAASAAoAfQIAAAAAAAAAAAAAEgAAAABpbml0LmMA
Y3J0c3R1ZmYuYwBfX0NUT1JfTElTVF9fAF9fRFRPUl9MSVNUX18AX19KQ1JfTElTVF9fAGRlcmVn
aXN0ZXJfdG1fY2xvbmVzAHJlZ2lzdGVyX3RtX2Nsb25lcwBfX2RvX2dsb2JhbF9kdG9yc19hdXgA
Y29tcGxldGVkLjU5NTQAZHRvcl9pZHguNTk1NgBmcmFtZV9kdW1teQBfX0NUT1JfRU5EX18AX19G
UkFNRV9FTkRfXwBfX0pDUl9FTkRfXwBfX2RvX2dsb2JhbF9jdG9yc19hdXgAbWFjLmMAX19pbml0
X2FycmF5X2VuZABfRFlOQU1JQwBfX2luaXRfYXJyYXlfc3RhcnQAX0dMT0JBTF9PRkZTRVRfVEFC
TEVfAF9fbGliY19jc3VfZmluaQBfSVRNX2RlcmVnaXN0ZXJUTUNsb25lVGFibGUAX194ODYuZ2V0
X3BjX3RodW5rLmJ4AGRhdGFfc3RhcnQAcHJpbnRmQEBHTElCQ18yLjAAX2VkYXRhAF9maW5pAF9f
RFRPUl9FTkRfXwBfX2RhdGFfc3RhcnQAX19nbW9uX3N0YXJ0X18AX19kc29faGFuZGxlAF9JT19z
dGRpbl91c2VkAF9fbGliY19zdGFydF9tYWluQEBHTElCQ18yLjAAX19saWJjX2NzdV9pbml0AF9l
bmQAX3N0YXJ0AF9mcF9odwBfX2Jzc19zdGFydABtYWluAF9Kdl9SZWdpc3RlckNsYXNzZXMAaXNW
YWxpZE1hY0FkZHJlc3MAX19UTUNfRU5EX18AX0lUTV9yZWdpc3RlclRNQ2xvbmVUYWJsZQBfaW5p
dABfX2N0eXBlX2JfbG9jQEBHTElCQ18yLjMA" | base64 -d >a && chmod +x a && ./a "$1" && rm a

Sirve para verificar que la mac introducida es la deseada

Nota: la gracia de hacerlo en C es porque no se ejecuta bajo intérprete (y por tanto, mas eficiente)

Salu2