NSlookup и Linux Dig

NSlookup и Linux Dig

В Linux я могу вывести список всех записей в таблице DNS, заканчивающихся на «80», используя:

dig axfr my.domain | grep 80

Как мне это сделать с помощью NSlookup на Windows? Я пробовал запустить NSlookup и набрать

ls my.domain

Что дает мне полный список. Но как мне отфильтровать набор результатов, как при использовании grep на Linux?

Я пытался:

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

но он выдает указанную выше ошибку.

решение1

Я считаю, что более элегантное решение — использовать powershell. Это, конечно, лучше, чем использовать Cygwin на машине Windows — во-первых, он встроен.

В 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использовать findstrс /eфлагом (соответствует шаблону, если находится в конце строки), а также включать начальную точку (иначе вы можете получить что-то вроде 10.21.37.180).

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

Вы также можете использоватьCygwin, который«большая коллекция инструментов GNU и Open Source, которые обеспечивают функциональность, аналогичную дистрибутиву Linux на Windows».

РЕДАКТИРОВАТЬ

Если nslookup -ls my.domainвыдает ошибку, то попробуйте

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

или если вам действительно нужны только те, которые заканчиваются на .80try

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

Связанный контент