在 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)$"}
答案2
我认为您正在寻找的是find
命令。
nslookup -ls my.domain | find "80"
但请注意,grep 80
norfind "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"