get all reserved ips from dhcp (multiple scopes)

habe eben einen export benötigt, der mir die reservierungen am dhcp in der form “ip;mac” liefert – das geht mit netsh ja sehr einfach, man muss nur den lästigen header und footer loswerden; das macht folgendes batch-file für x scopes automatisch. einfach alle scopes in ein file names “scopes.txt” schreiben und laufen lassen – es werden zwei files generiert:

reservedips.txt – inhalt:
192.168.0.1;01-ff-0a-f8-98-02

reservedips_cleanmac.txt – inhalt:
192.168.0.1;01ff0af89802

es ist zwar reht umständlich realisiert, aber mehr zeit war nicht und es funktionert, also was will man mehr

@echo off
echo working hard…
echo.

if not exist scopes.txt goto fnf

echo step 1/5 (getting infos from dhcp)…
if exist temp.txt del temp.txt
for /f “tokens=1” %%a in (scopes.txt) do netsh dhcp server \your_dhcp_server scope %%a show reservedip>>temp.txt

echo step 2/5 (grep)…
type temp.txt|qgrep -y “\-“>temp2.txt

if exist temp3.txt del temp3.txt
echo step 3/5 (strip needless infos part 1)…
for /f “tokens=1,* delims=-” %%a in (temp2.txt) do (
if not “%%a”==” Reservation Address ” echo %%a;%%b>>temp3.txt
)

if exist reservedips.txt del reservedips.txt

echo step 4/5 (strip needless infos part 2)…
for /f “tokens=1,* delims=;- ” %%a in (temp3.txt) do (
echo %%a;%%b>>reservedips.txt
)

if exist reservedips_cleanmac.txt del reservedips_cleanmac.txt

echo step 5/5 (convert mac)…
for /f “tokens=1-7,* delims=;-” %%a in (reservedips.txt) do (
echo %%a;%%b%%c%%d%%e%%f%%g>>reservedips_cleanmac.txt
)

echo cleanup…
if exist temp.txt del temp.txt
if exist temp2.txt del temp2.txt
if exist temp3.txt del temp3.txt

echo.
echo done! file reservedips.txt and reservedips_cleanmac.txt created

goto ende

:fnf
echo file scopes.txt was not found!!!
goto ende

:ende