
No Linux posso listar todas as entradas na tabela DNS que terminam em “80” usando:
dig axfr my.domain | grep 80
Como faço isso com o NSlookup no Windows? Eu tentei iniciar o NSlookup e digitar
ls my.domain
O que me dá a lista completa. Mas como faço para filtrar o conjunto de resultados como usar o grep no Linux?
Eu tentei:
C:\Users\user>nslookup -ls my.domain | find "80"
*** Invalid option: ls
mas dá o erro acima.
Responder1
Acredito que uma solução mais elegante é usar o PowerShell. Certamente é melhor do que usar o Cygwin em uma máquina Windows - por um lado, ele está integrado.
No Bash escrevemos:
dig axfr my.domain | grep "80"
O equivalente no Powershell seria:
nslookup -ls my.domain | where {$_ -match "80"}
Ou melhor ainda, usar regex para garantir que apenas as linhas que terminam com 80
serão correspondidas:
nslookup -ls my.domain | where {$_ -match "(80)$"}
Além disso, se você estiver interessado em transferências de zona de domínio, poderá encontraresta respostaútil (e aqui está umProjeto GitHub).
Responder2
Acho que o que você está procurando é o find
comando.
nslookup -ls my.domain | find "80"
Observe, porém, que nem grep 80
nem find "80"
retornará apenas essas entradasfinalem 80
. Ambos retornarão entradas queconter 80
. Se você realmente deseja apenas entradas quefimseria 80
melhor usar findstr
com o /e
sinalizador (corresponde ao padrão se estiver no final de uma linha), bem como incluir um ponto inicial (caso contrário, você poderá obter algo como 10.21.37.180).
nslookup -ls my.domain | findstr /e ".80"
Você também pode usarCygwin, qual é"uma grande coleção de ferramentas GNU e Open Source que fornecem funcionalidade semelhante a uma distribuição Linux no Windows."
EDITAR
Se nslookup -ls my.domain
estiver dando um erro, você pode tentar
echo ls my.domain | nslookup | find "80"
ou se você realmente só quer aqueles que terminam em .80
tentativa
echo ls my.domain | nslookup | findstr /e ".80"