#!/bin/bash
HOST=$1
PORTPARAM=$2
if [[ -n "$PORTPARAM" && ( "$PORTPARAM" -lt 0 || "$PORTPARAM" -gt 24 ) ]]; then
echo "Error port number!"
exit
fi
for string in `snmpwalk -v 2c -c public $HOST 1.3.6.1.2.1.17.7.1.2.2.1.2 -O qn|sed -e "s/^\.//g" -e "s/ /./g"`; do
decmac=$(echo $string|awk -F "." '{print $15";"$16";"$17";"$18";"$19";"$20}')
vlan=$(echo $string|awk -F "." '{print $14 }')
mac=""
for hex in `echo "obase=16; $decmac"|bc`; do
if [ ${#hex} == "1" ]; then
hex="0"$hex
fi
if [ -z $mac ]; then
mac=$hex
else
mac=$mac":"$hex
fi
done
port=$(echo $string|awk -F "." '{print $21}')
if [ -z "$PORTPARAM" ]; then
printf $vlan"\t"$mac"\t"$port"\n"
elif [ $PORTPARAM == $port ]; then
printf $vlan"\t"$mac"\t"$port"\n"
fi
done
vlan/mac/port from switch fdb
Published inIT
Be First to Comment