
En Linux puedo enumerar todas las entradas en la tabla DNS que terminan en "80" usando:
dig axfr my.domain | grep 80
¿Cómo hago eso con NSlookup en Windows? Intenté iniciar NSlookup y escribir
ls my.domain
Lo que me da la lista completa. Pero, ¿cómo filtro el conjunto de resultados como si usara grep en Linux?
Yo he tratado:
C:\Users\user>nslookup -ls my.domain | find "80"
*** Invalid option: ls
pero da el error anterior.
Respuesta1
Creo que una solución más elegante es utilizar PowerShell. Ciertamente es mejor que usar Cygwin en una máquina con Windows; por un lado, está integrado.
En Bash escribimos:
dig axfr my.domain | grep "80"
El equivalente en Powershell sería:
nslookup -ls my.domain | where {$_ -match "80"}
O incluso mejor, usar expresiones regulares para asegurarse de que solo 80
coincidan las líneas que terminan en:
nslookup -ls my.domain | where {$_ -match "(80)$"}
Además, si está interesado en transferencias de zona de dominio, puede encontraresta respuestaútil (y aquí hay unProyecto GitHub).
Respuesta2
Creo que lo que estás buscando es el find
comando.
nslookup -ls my.domain | find "80"
Sin embargo, tenga en cuenta que ni grep 80
ni find "80"
solo devolverá esas entradas.finalizandoen 80
. Ambos devolverán entradas quecontener 80
. Si realmente solo quieres entradas quefinSería 80
mejor usarlo findstr
con la /e
bandera (coincide con el patrón si está al final de una línea), además de incluir un punto inicial (de lo contrario, podría obtener algo como 10.21.37.180).
nslookup -ls my.domain | findstr /e ".80"
También puedes usarCygwin, cual es"una gran colección de herramientas GNU y de código abierto que proporcionan una funcionalidad similar a una distribución de Linux en Windows".
EDITAR
Si nslookup -ls my.domain
te da un error, entonces puedes intentarlo.
echo ls my.domain | nslookup | find "80"
o si realmente solo quieres los que terminan en .80
try
echo ls my.domain | nslookup | findstr /e ".80"