
Linux에서는 다음을 사용하여 "80"으로 끝나는 DNS 테이블의 모든 항목을 나열할 수 있습니다.
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을 사용하는 것보다 확실히 낫습니다. 우선 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
. 정말로 다음 항목만 원하는 경우끝플래그 (줄 끝에 있는 경우 패턴과 일치)를 사용하고 선행 마침표를 포함하는 것이 더 좋습니다(그렇지 않으면 10.21.37.180과 같은 결과를 얻을 수 있음 ) 80
.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"