Niezbyt często coś robię pod FreeSCO, ale to chyba dobrze o nim świadczy, bo już ładnych 5 lat serwerek chodzi i nie wymaga wielu interwencji.
Ostatnio analizowałem jakieś wpisy, które sobie sam zrzucam, a że rzadko tam zaglądam, to numet IP mi niewiele mówi.
Czasmi jest odwrotnie, gdzie chcę wiedzieć jaki numer IP ma dany host.
Dlatego napisałm taką procedurkę, która zwraca IP lub nazwę hosta w zależności co się poda w parametrze. Można przed zrzutem zamienić jedno na drugie lub zapisać obydwie informacje.
Skoro już ją napisałem to ją tu wrzuciłem, gdyby ktoś coś takiego potrzebował. Ja sobie ję nazwałem
f_ip
# by KIPA :-)
# Jakie IP ma dany komputer na podstawie hosts
# i vice versa
# zwraca IP lub nazwę
i=8 # --- nr linii od której zaliczać hosts
s=3 # --- ile pustych lini na stop
. /etc/system.cfg
f=$s # --- liczenie pustych lini od nowa
while [ "$f" -gt 0 ]; do # --- do odczytu tylu pustych ile podaje stop
i=$(expr $i + 1) # --- nastepna linia
l=`sed -n $i,//l /etc/hosts` # --- czytaj linie
[ "$l" ] || f=$(expr $f - 1) # --- zalicz pusta
ii=0 # --- wyzeruj licznik wyrazow
for w in $l; do # --- wyrazy w linii
ii=$(expr $ii + 1) # --- kolejny wyraz
case $ii in
1)
# --- nr IP
[ "$w" = "#" ] && ii=3 # --- przeskocz komentarz
if [ "$w" -eq "$NETWORK1" ]; then komp=$w; fi # --- odczytaj nazwę hosta
if [ "$1" = $w ]; then
f=0 # --- ustaw wsakźnik, że to ten IP
fi
;;
2)
# --- nazwa kompa
if [ "$1" = $w ]; then
echo $komp # --- zwróć nazwę hosta
fi
if [ "$f" = 0 ]; then
echo $w # --- zwróć IP
fi
f=$s # --- pełna wartosc stop, linia niepusta
;;
esac
done
done