NSlookup e Linux Dig

NSlookup e Linux Dig

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 80serã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 findcomando.

nslookup -ls my.domain | find "80"

Observe, porém, que nem grep 80nem find "80"retornará apenas essas entradasfinalem 80. Ambos retornarão entradas queconter 80. Se você realmente deseja apenas entradas quefimseria 80melhor usar findstrcom o /esinalizador (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.domainestiver dando um erro, você pode tentar

 echo ls my.domain | nslookup | find "80"

ou se você realmente só quer aqueles que terminam em .80tentativa

 echo ls my.domain | nslookup | findstr /e ".80"

informação relacionada