Atualmente consigo buscar um endereço IP de um servidor DNS com o primeiro comando mostrado abaixo. No entanto, é tedioso digitar um servidor DNS por vez e executar comandos. Eu tentei no passado executar isso for /F %i in (dns.txt); do nslookup %i; > ips.txt;
e funciona. No entanto, estou tentando aplicar o mesmo conceito ao comando abaixo. Como posso resolver o endereço DNS de um arquivo de texto, converter endereços IP e gerar resultados em um novo arquivo de texto?
Funciona apenas para 1 DNS para endereço IP
for /f "skip=4 usebackq tokens=2" %a in (`nslookup somedns.com`) do echo %a > ips.txt
Responder1
Acho que o erro é do >
operador. Na verdade, isso truncará o arquivo e, em seguida, gravará a saída no ips.txt
arquivo, mas você estará em um loop e truncando o arquivo todas as vezes. Experimente o >>
operador.
for /f "skip=4 usebackq tokens=2" %a in (`nslookup somedns.com`) do echo %a >> ips.txt
EDITAR: para fazer um loop em um arquivo e obter o endereço IP de cada host DNS, você faria algo assim:
for /f "tokens=*" %%A in (yourhostsfile.txt) do nslookup %%A >> ips.txt