NSLOOKUP gibt 2 IP-Adresse zurück

992
jaaajaa

Wenn ich nslookup mache, gibt es mein eigenes DNS und die IP-Adresse des Servers zurück, den ich nslookup mache. Wie kann ich es vermeiden, meinen eigenen DNS-Server zu drucken?

@echo off for /f "tokens=*" %%A in (servers.txt) do nslookup %%A >>ips.txt 
-2
Ihre Frage ist unklar ... Sie müssten detailliertere Informationen mit einem Screenshot oder etwas anderem geben, damit wir genau wissen, was Sie versuchen, und erklären, was Sie erreichen wollen, da Ihr "Skript" weniger klar ist. acejavelin vor 7 Jahren 0
"nslookup" ist einfach kein geeignetes Werkzeug für das, was Sie erreichen wollen. Mit PowerShell haben Sie wahrscheinlich mehr Glück. Beachten Sie auch, dass ein einzelner Domainname eine beliebige Anzahl von A- und AAAA-Datensätzen enthalten kann. Daniel B vor 7 Jahren 1

1 Antwort auf die Frage

1
LotPings

Verwenden Sie einen zweiten Stack For /f, um die Ausgabe von nslookup zu parsen und die ersten drei Zeilen zu überspringen:

@Echo off&SetLocal EnableExtensions EnableDelayedExpansion For /f "tokens=*" %%A in ( servers.txt ) Do For /f "Skip=3 Tokens=1* Delims=: " %%B in ( 'nslookup %%A' ) Do Echo %%B=%%C 

Beispielausgabe

Name=Matar.fritz.box Addresses=2003:dc:73c5:7800::0 =192.168.3.92 

Abhängig von Ihrem Setup kann nslookup mehr als eine IP zurückgeben, sogar IPv6-Adressen. Für IPv4 mit Ping könnte es also einfacher sein:

@Echo off&SetLocal EnableExtensions EnableDelayedExpansion For /f "tokens=*" %%A in ( servers.txt ) Do For /f "tokens=2Delims=[]" %%B in ( 'Ping -4 -n 1 %%A ^|find "["' ) Do Echo IPv4=%%B  

IPv4=192.168.192.92