Mit batch-Skript durch alle IPs von nslookup loopen

Triversity

Captain
Registriert
Apr. 2009
Beiträge
3.102
Hallo zusammen,

ich muss für einige Webseiten statische routen per "route add" hinzufügen. Idee ist, mit nslookup alle IPs herauszufinden und mit einer for-Schleife für jede IP die route hinzufügen. Leider bekomme ich nicht alle IPs und ich kann mir aktuell nicht erklären, warum.

Beispiel yahoo:
Wenn ich nur "nslookup yahoo.de" in der CMD ausführe, bekomme ich 5 IPs zurück:
Server: xxx
Address: xxx

Nicht autorisierende Antwort:
Name: yahoo.de
Addresses: 98.136.103.24
74.6.136.151
106.10.248.151
124.108.115.101
212.82.100.151

Wenn ich aber folgendes batch-Skript ausführe, bekomme ich nur 4 IPs:
Code:
setlocal EnableDelayedExpansion

for /f "skip=5" %%f in ('nslookup yahoo.de') do (
     echo %%f
)

pause
C:\Users\Triversity\Desktop>"test - Kopie.cmd"

C:\Users\Triversity\Desktop>setlocal EnableDelayedExpansion

C:\Users\Triversity\Desktop>for /F "skip=5" %f in ('nslookup yahoo.de') do (echo %f )
Nicht autorisierende Antwort:

C:\Users\Triversity\Desktop>(echo 212.82.100.151 )
212.82.100.151

C:\Users\Triversity\Desktop>(echo 106.10.248.151 )
106.10.248.151

C:\Users\Triversity\Desktop>(echo 98.136.103.24 )
98.136.103.24

C:\Users\Triversity\Desktop>(echo 74.6.136.151 )
74.6.136.151

C:\Users\Triversity\Desktop>pause
Drücken Sie eine beliebige Taste . . .

Über Tipps, wie ich an alle 5 IPs komme, wäre ich sehr dankbar!
 
Die 1. IP ist in Zeile 5. Die geht also verloren, wenn Du 5 Zeilen skipst.

Bei Skip=4 bekommst Du sie trotzdem nicht angezeigt wegen dem Leerzeichen davor ... deswegen musst Du entweder Token oder Trennzeichen setzen. Mit tokens=* liest Du die ganze Zeile inklusive Leerzeichen.

Code:
for /f "skip=4 tokens=*" %%f in ('nslookup yahoo.de') do (
     echo %%f
)

pause

C:\Users\unknown>(echo Addresses: 212.82.100.151 )
Addresses: 212.82.100.151

C:\Users\unknown>(echo 106.10.248.151 )
106.10.248.151

C:\Users\unknown>(echo 74.6.136.151 )
74.6.136.151

C:\Users\unknown>(echo 124.108.115.101 )
124.108.115.101

C:\Users\unknown>(echo 98.136.103.24 )
98.136.103.24
 
Vielen Dank, aber dann hab ich leider immer noch das "Addresses: " bei der ersten IP mit drin, was stört. Hast du eine Idee wie ich das rausbekomme, ohne die anderen IPs zu zerschießen?

edit:
Ich denke ich hab's.
Code:
setlocal EnableDelayedExpansion

for /f "skip=4 tokens=*" %%f in ('nslookup yahoo.de') do (
     set string=%%f
     echo !string!
     set ip=!string:Addresses:  =!
     echo !ip!
)

pause
 
Zuletzt bearbeitet:
Zurück
Oben