s4ros icon

Interfaces bash reader

s4ros | PRO | 04/02/17 08:36:21 PM UTC | 0 ⭐ | 432 👁️ | Never ⏰ | []
Bash |

1.29 KB

|

None

|

0 👍

/

0 👎

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