nexmon – Rev 1

Subversion Repositories:
Rev:
#!/bin/sh

CURL=`which curl 2>/dev/null`
WGET=`which wget 2>/dev/null`
OUI_DOWNLOAD_URL="http://standards-oui.ieee.org/oui.txt"

OUI_PATH0="/etc/aircrack-ng"
OUI_PATH1="/usr/local/etc/aircrack-ng"
OUI_PATH2="/usr/share/aircrack-ng"
if [ -d "$OUI_PATH0" ]; then
        OUI_PATH="$OUI_PATH0"
elif [ -d "$OUI_PATH1" ]; then
        OUI_PATH="$OUI_PATH1"
elif [ -d "$OUI_PATH2" ]; then
        OUI_PATH="$OUI_PATH2"
else
        # default
        OUI_PATH="$OUI_PATH0"
fi

AIRODUMP_NG_OUI="${OUI_PATH}/airodump-ng-oui.txt"
OUI_IEEE="${OUI_PATH}/oui.txt"
USERID=""


# Make sure the user is root
if [ x"`which id 2> /dev/null`" != "x" ]
then
        USERID="`id -u 2> /dev/null`"
fi

if [ x$USERID = "x" -a x$UID != "x" ]
then
        USERID=$UID
fi

if [ x$USERID != "x" -a x$USERID != "x0" ]
then
        echo Run it as root ; exit ;
fi


if [ ! -d "${OUI_PATH}" ]; then
        mkdir -p ${OUI_PATH}
fi

if [ ${CURL} ] || [ ${WGET} ]; then
        # Delete previous partially downloaded file (if the script was aborted)
        rm -f ${OUI_IEEE} >/dev/null 2>/dev/null

        # Download it
        echo "[*] Downloading IEEE OUI file..."

        if [ ${WGET} ]; then
                ${WGET} ${OUI_DOWNLOAD_URL} -O ${OUI_IEEE} >/dev/null 2>/dev/null
        else
                ${CURL} -L ${OUI_DOWNLOAD_URL} > ${OUI_IEEE} 2>/dev/null
        fi

        if [ "${?}" -ne 0 ]; then
                echo "[*] Error: Failed to download OUI list, aborting..."
                exit 1
        fi

        # Parse the downloaded OUI list
        echo "[*] Parsing OUI file..."

        # Keep the previous file
        if [ -f "${OUI_DOWNLOADED}" ]; then
                mv ${AIRODUMP_NG_OUI} ${OUI}-old
        fi

        # Parse it
        grep "(hex)" ${OUI_IEEE} | sed 's/^[ \t]*//g;s/[ \t]*$//g' > ${AIRODUMP_NG_OUI}
        if [ "${?}" -ne 0 ]; then
                echo "[*] Error: Failed to parse OUI, aborting..."
                exit 1
        fi

        # Cleanup
        rm -f ${OUI_IEEE}

        echo "[*] Airodump-ng OUI file successfully updated"
else
        if [ -f "${OUI}" ]; then
                echo "[*] Please install curl or wget to update OUI list"
        else
                echo "[*] Please install curl or wget to install OUI list"
        fi
        exit 1
fi

exit 0