#!/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