Advertisement
s4ros

Interfaces bash reader

Apr 2nd, 2017
186
0
Never
Not a member of Pastebin yet? Sign Up, it unlocks many cool features!
Bash 1.29 KB | None | 0 0
  1. #!/bin/bash
  2.  
  3. FILE=./interfaces.txt
  4.  
  5. # tworzenie pliku $FILE
  6. # zapisywanie informacji z infonfig do pliku
  7. ifconfig > $FILE
  8. # separator wizualny
  9. echo "--------------------------------" >> $FILE
  10.  
  11. INTS=$(ifconfig | grep -v lo | grep -A1 'Link encap')
  12.  
  13. # zmienna pomocnicza - licznik na podstawie ktorego
  14. # bedziemy sie orientowac, ktore pole z ifconfig aktualnie ANALizujemy
  15. i=0
  16.  
  17. # petelka for przelatuje po wszystkich aktywnych interfejsach zwroconych przez ifconfig
  18. for ii in $INTS; do
  19.   # pierwsza informacja zawsze bedzie nazwa interfejsu
  20.   if [[ $i -eq 0 ]]; then
  21.     interface=${ii}
  22.   fi
  23.  
  24.   # informacja "na pozycji" 4 bedzie zawierala adres MAC
  25.   if [[ $i -eq 4 ]]; then
  26.     mac=${ii}
  27.   fi
  28.  
  29.   # informacja "na pozycji" 6 bedzie zawierala adres IP
  30.   if [[ $i -eq 6 ]]; then
  31.     # substring, wycinamy "addr:" z ciagu znakow z adresem IP zwracanym przez ifocnfig
  32.     ipaddr=${ii#*:}
  33.   fi
  34.  
  35.   i=$((i+1))
  36.  
  37.   # ostatnia informacja z ifconfig bedzie Maska sieciowa
  38.   # jesli natrafimy na ta informacje, ustawiamy licznik na -1
  39.   # i zaczynamy oznaczanie kolejnego interfejsu
  40.   if [[ "${ii%:*}" == 'Mask' ]]; then
  41.     # echo $ii == Mask
  42.     i=-1
  43.     # zpis informacji do pliku w formacie
  44.     # interface, ipaddress, mac
  45.     echo "${interface}, ${ipaddr}, ${mac}" >> $FILE
  46.   fi
  47. done
Advertisement
Add Comment
Please, Sign In to add comment
Advertisement