-2

Когда я делаю nslookup, он возвращает свой собственный DNS и IP-адрес сервера, который я делаю nslookup. Как я могу избежать печати моего собственного DNS-сервера?

@echo off
for /f "tokens=*" %%A in (servers.txt) do nslookup %%A >>ips.txt

1 ответ1

1

Используйте второй составленный For /f чтобы проанализировать вывод nslookup и пропустить первые три строки:

@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

Пример вывода

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

В зависимости от вашей настройки nslookup может вернуть более одного IP, даже включая адреса IPv6. Так что переход на IPv4 с Ping может быть проще:

@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

Всё ещё ищете ответ? Посмотрите другие вопросы с метками .