NSlookup 和 linux Dig

NSlookup 和 linux Dig

在 Linux 上,我可以使用以下命令列出 DNS 表中以“80”结尾的所有条目:

dig axfr my.domain | grep 80

如何在 Windows 上使用 NSlookup 执行此操作?我尝试启动 NSlookup 并输入

ls my.domain

它给出了完整列表。但是如何像在 Linux 上使用 grep 一样过滤结果集?

我努力了:

C:\Users\user>nslookup -ls my.domain | find "80"
*** Invalid option: ls

但它给出了上述错误。

答案1

我认为更优雅的解决方案是使用 powershell。它肯定比在 Windows 机器上使用 Cygwin 更好 - 因为它是内置的。

在 Bash 中我们这样写:

dig axfr my.domain | grep "80"

Powershell 中的等效代码为:

nslookup -ls my.domain | where {$_ -match "80"}

或者更好的方法是使用正则表达式来确保只80匹配以 结尾的行:

nslookup -ls my.domain | where {$_ -match "(80)$"}

此外,如果你对域名区域转移感兴趣,你可能会发现这个答案有用(这里有一个GitHub 项目)。

答案2

我认为您正在寻找的是find命令。

nslookup -ls my.domain | find "80"

但请注意,grep 80norfind "80"不会只返回那些条目结尾80它们都将返回包含 80。如果您确实只想要以下条目结尾最好80使用findstr标志/e(如果在行尾则匹配模式)以及包含前导句点(否则您可能会得到类似 10.21.37.180 的内容)。

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

您还可以使用赛格威,即“大量的 GNU 和开源工具,提供与 Windows 上的 Linux 发行版类似的功能。”

编辑

如果nslookup -ls my.domain出现错误,那么你可以尝试

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

.80或者如果你真的只想要以try结尾的

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

相关内容