#!/bin/sh
#    netdiscover-to-devinfo - netdiscover to MAC IEEE and custom information
#    Copyright (C) 2009  Daniel Dickinson

#    This program is free software; you can redistribute it and/or modify
#    it under the terms of the GNU General Public License as published by
#    the Free Software Foundation; either version 2 of the License, or
#    (at your option) any later version.

#    This program is distributed in the hope that it will be useful,
#    but WITHOUT ANY WARRANTY; without even the implied warranty of
#    MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE.  See the
#    GNU General Public License for more details.

#    You should have received a copy of the GNU General Public License along
#    with this program; if not, write to the Free Software Foundation, Inc.,
#    51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 USA.

MACTODEV=mac-to-devinfo

if [ -z "$1" ] || [ -z "$2" ] || [ -z "$3" ]; then
    echo "Usage: netdiscover-to-devinfo IP-range Interface Timeout [-r repeats] [-s sleep_between_arp_requests]"
    exit 1
fi

prep-devinfo
IFS='
'

IPRANGE=$1
IFACE=$2
TIMEOUT=$3

shift 3

while getopts "r:s:h" param; do
    case "$param" in
	h)
	    usage
	    exit 1
	    ;;
	r)
	    REPEATS=" -c $OPTARG"
	    ;;
	s)
	    SLEEPREQ="-s $OPTARG"
	    ;;
	?|*)
	    usage
	    exit 1
	    break
	    ;;

    esac
done


for line in $(sh -c "netdiscover -t $TIMEOUT-k -m -i $IFACE -r $IPRANGE $REPEATS $SLEEPREQ 2>/dev/null" | grep -E '[0-9]([0-9]?[0-9])?.[0-9]([0-9]?[0-9])?.[0-9]([0-9]?[0-9])?.[0-9]([0-9]?[0-9])?.[0-9]([0-9]?[0-9])?'); do
    unset IFS
    IP=$(echo $line | tr -s \  |  cut -f1 -d\  )
    MAC=$(echo $line | tr -s \  |  cut -f2 -d\  )
    echo "$IP"" | ""$($MACTODEV $MAC)"
    IFS='
'
done

unset IFS