Actualmente puedo obtener una dirección IP de un servidor DNS con el primer comando que se muestra a continuación. Sin embargo, resulta tedioso escribir un servidor DNS a la vez y ejecutar el comando. Intenté ejecutar esto en el pasado for /F %i in (dns.txt); do nslookup %i; > ips.txt;
y funciona. Sin embargo, estoy intentando aplicar el mismo concepto al siguiente comando. ¿Cómo puedo resolver la dirección DNS de un archivo de texto, convertir direcciones IP y generar el resultado en un nuevo archivo de texto?
Solo funciona para 1 DNS a dirección IP
for /f "skip=4 usebackq tokens=2" %a in (`nslookup somedns.com`) do echo %a > ips.txt
Respuesta1
Supongo que el error es el >
operador. En realidad, esto truncará el archivo y luego escribirá la salida en el ips.txt
archivo, pero estás en un bucle y estás truncando el archivo cada vez. Pruebe con el >>
operador en su lugar.
for /f "skip=4 usebackq tokens=2" %a in (`nslookup somedns.com`) do echo %a >> ips.txt
EDITAR: Para recorrer un archivo y obtener la dirección IP de cada host DNS, haría algo como esto:
for /f "tokens=*" %%A in (yourhostsfile.txt) do nslookup %%A >> ips.txt