NSLOOKUP 返回 2 个 IP 地址

NSLOOKUP 返回 2 个 IP 地址

当我执行 nslookup 时,它会返回我自己的 DNS 和我正在执行 nslookup 的服务器的 IP 地址。我怎样才能避免它打印我自己的 DNS 服务器?

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

答案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 地址。因此使用 Ping 查找 IPv4 可能更容易:

@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

相关内容