
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 80
くださいfind "80"
。エンディングどちら80
も、含む 80
本当に必要なのは、終わりこの場合、フラグ (行末にある場合はパターンに一致) と一緒に80
使用し、先頭にピリオドを含めることをお勧めします(そうしないと、10.21.37.180 のようなものが返される可能性があります)。findstr
/e
nslookup -ls my.domain | findstr /e ".80"
使用することもできますシグウィン、これは「Windows 上で Linux ディストリビューションと同様の機能を提供する GNU およびオープンソース ツールの大規模なコレクション。」
編集
nslookup -ls my.domain
エラーが出た場合は、
echo ls my.domain | nslookup | find "80"
.80
または本当にtryで終わるものだけが欲しい場合は
echo ls my.domain | nslookup | findstr /e ".80"