#!/bin/bash
FILE=./interfaces.txt
# tworzenie pliku $FILE
# zapisywanie informacji z infonfig do pliku
ifconfig > $FILE
# separator wizualny
echo "--------------------------------" >> $FILE
INTS=$(ifconfig | grep -v lo | grep -A1 'Link encap')
# zmienna pomocnicza - licznik na podstawie ktorego
# bedziemy sie orientowac, ktore pole z ifconfig aktualnie ANALizujemy
i=0
# petelka for przelatuje po wszystkich aktywnych interfejsach zwroconych przez ifconfig
for ii in $INTS; do
# pierwsza informacja zawsze bedzie nazwa interfejsu
if [[ $i -eq 0 ]]; then
interface=${ii}
fi
# informacja "na pozycji" 4 bedzie zawierala adres MAC
if [[ $i -eq 4 ]]; then
mac=${ii}
fi
# informacja "na pozycji" 6 bedzie zawierala adres IP
if [[ $i -eq 6 ]]; then
# substring, wycinamy "addr:" z ciagu znakow z adresem IP zwracanym przez ifocnfig
ipaddr=${ii#*:}
fi
i=$((i+1))
# ostatnia informacja z ifconfig bedzie Maska sieciowa
# jesli natrafimy na ta informacje, ustawiamy licznik na -1
# i zaczynamy oznaczanie kolejnego interfejsu
if [[ "${ii%:*}" == 'Mask' ]]; then
# echo $ii == Mask
i=-1
# zpis informacji do pliku w formacie
# interface, ipaddress, mac
echo "${interface}, ${ipaddr}, ${mac}" >> $FILE
fi
done
Comments