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 80find "80"不會僅返回這些條目結尾80。他們都會返回以下條目包含 80。如果您確實只想要以下條目結尾最好與標誌一起80使用(如果在行尾則匹配模式)並包含前導句點(否則您可能會得到類似 10.21.37.180 的內容)。findstr/e

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

您也可以使用西格文,即“大量 GNU 和開源工具的集合,提供類似於 Windows 上的 Linux 發行版的功能。”

編輯

如果nslookup -ls my.domain給你一個錯誤,那麼你可以嘗試

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

或者如果你真的只想要那些以.80try結尾的

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

相關內容