In 2 Artikeln1 hatte ich das Thema schonmal behandelt und habe eine weitere sinnvolle Erweiterung gefunden.
Das Ziel ist es schnellstmöglich eine frei verfügbare IP Adresse in einem vorgegeben Netzwerk herauszufinden.
Hierbei gibt es einen DHCP Pool für dynamische IP Adressen, der nicht genutzt werden soll. Das Geich gilt für Adressen oberhalb von 200, diese sind für Drucker reserviert.
Der genannte Bereich 70-93 und >200 interessiert uns hier also nicht nicht.
[bash]
!/bin/bash
echo Alle nicht genutzten IP im 192.00.x Netz
echo x zwischen 17 und 200
echo =========================================
echo
# 70 – 93 ist DHCP Pool
NETZ1=192.0.0
i=17
z=0
while [ $i -le 69 ]
do
if ( ping -c 1 $NETZ1.$i | grep Unreachable > /dev/null )
then
echo $NETZ1.$i
let z=$z+1
fi
let i=$i+1
done
# zaehler auf 93 setzen wegen DHCP
i=94
echo
echo =============
echo 192.0.0.70-93 ist DHCP Pool
echo =============
echo
while [ $i -le 200 ]
do
if ( ping -c 1 $NETZ1.$i | grep Unreachable > /dev/null )
then
echo $NETZ1.$i
let z=$z+1
fi
let i=$i+1
done
echo
echo ========================================
echo
echo Es gibt $z frei verfuegbare IP-Adressen in diesem Netz.
echo
echo
[/bash]
Das Ergebnis sieht dann so aus:
[bash]
Alle nicht genutzten IP im 192.00.x Netz
x zwischen 17 und 200
=========================================
192.0.0.18
192.0.0.22
192.0.0.29
192.0.0.42
192.0.0.45
192.0.0.46
=============
192.0.0.70-93 ist DHCP Pool
=============
192.0.0.96
192.0.0.99
192.0.0.102
192.0.0.105
192.0.0.106
192.0.0.107
192.0.0.108
192.0.0.109
192.0.0.112
192.0.0.117
192.0.0.118
192.0.0.119
192.0.0.121
192.0.0.135
192.0.0.143
192.0.0.144
192.0.0.145
192.0.0.146
192.0.0.147
192.0.0.148
192.0.0.149
192.0.0.150
192.0.0.156
192.0.0.157
192.0.0.158
192.0.0.159
192.0.0.163
192.0.0.171
192.0.0.172
192.0.0.174
192.0.0.184
192.0.0.188
192.0.0.191
192.0.0.192
192.0.0.200
========================================
Es gibt 41 frei verfuegbare IP-Adressen in diesem Netz.
[/bash]
1 – Wie findet man eine freie IP in einem Netzwerk
2 – Freie IPs in 2 Netzwerken