mac-id.bash

d
Nombre: mac-id.bash
Autor: Alejandro Amaral
Descripción: Ingresada una direccion MAC, el script devuelve el nombre del fabricante de la interfaz de red
#!/bin/bash

# mac-id.sh
# Autor Alejandro Amaral - Creative Commons Reconocimiento-CompartirIgual 3.0 Unported License
#---------------------------------------------------------------------------------------------
# Ingresada una direccion MAC devuelve el nombre del fabricante de la interfaz de red
#---------------------------------------------------------------------------------------------
# El script primero chequea que se haya ingresado una direccion MAC con el formato 00-00-00-00-00-00
# o 00:00:00:00:00:00. Si se llama sin ningun argumento sale inmediatamente informando al usuario del
# del error. Una vez hecha la comprobacion del formato, si es incorrecta sale inmediatamente, sino
# se verifica que el archivo con los nombres de los fabricantes este presente (/tmp/oui.txt). En el
# caso de no encontrarse, el archivo es descargado de internet.
# Ya con el archivo guardado localmente se procede a buscar la linea que coincida con los primeros
# 3 bloques hexadecimales. Se informa el resultado en el caso de ser (o no) encontrado el fabricante.
#
# Uso: ./mac-id.sh 00:00:00:00:00:00 

if [ -z $1 ]; then
        echo "Debe ingresar una direccion MAC"
        exit 1
fi

MAC=`echo "$1" | tr '[:lower:]' '[:upper:]' | tr ':' '-' | grep -E "((([0-9]|[A-F]){2})-){5}([0-9]|[A-F]){2}"` > /dev/null 2>&1 #Convierte toda la cadena a $

if [ -z $MAC ]; then                                            # Si la variable MAC esta vacia es que el formato es incorreto
        echo "La direccion MAC tiene formato incorrecto"
        exit 1
else                                                            # El formato de la direccion MAC es correcto
        MAC=`echo $MAC | cut -c -8` > /dev/null 2>&1            # Se extraen los primeros 3 bloques hexadecimales (que identifican al fabricante)
        if [ ! -f /tmp/oui.txt ]; then                          # Si el archivo con los fabricantes no existe entonces se descarga
                wget -qO - 'http://standards.ieee.org/develop/regauth/oui/oui.txt' > /tmp/oui.txt
        fi

        FABRICANTE=`cat /tmp/oui.txt | grep $MAC | cut -f 3`    # Extraemos la linea donde esta la MAC del archivo de fabricantes

0 comentarios: