Miscellaneous

batch nslookup script

1103동103호·2017년 12월 28일·조회 3,279

1. 개요

여러 도메인에 대해 nslookup을 일괄로 수행하는 간단한 셸 스크립트입니다. 파일에 조회할 도메인 목록을 작성해 두고, 각 줄의 첫 번째 값을 읽어 DNS 조회 결과를 출력합니다.

입력 파일은 한 줄에 하나의 도메인을 두는 형태가 가장 단순합니다. 공백 뒤에 메모나 다른 값이 있어도 이 스크립트는 첫 번째 필드만 도메인 이름으로 사용합니다.


2. 스크립트

while read DNS_LINE;
do
    DNS_NAME=`echo $DNS_LINE | cut -d' ' -f1`
    RESULT=`nslookup $DNS_NAME | tail -2 | head -1 | awk -F ": " {'print $2}'`

    if [ -n "$RESULT" -a "$RESULT" != "NXDOMAIN" ]; then
        echo $DNS_NAME " : " $RESULT
    elif [ "$RESULT" == "NXDOMAIN" ]; then
        echo $DNS_NAME ": NXDOMAIN : " $RESULT
    else
        echo $DNS_NAME ": ENDPOINT MAPPING:" $RESULT
    fi
done < [파일명]

3. 사용 방법

[파일명] 부분을 실제 도메인 목록 파일명으로 바꿔 실행합니다. 예를 들어 domains.txt 파일을 사용한다면 마지막 줄은 done < domains.txt처럼 작성하면 됩니다.

입력 파일 예시는 다음과 같습니다.

example.com
www.example.com
invalid.example

실행 결과가 의도한 대로 나오는지 확인할 때는 먼저 2~3개 정도의 도메인만 넣어 테스트하는 것이 좋습니다. nslookup 출력 형식은 운영체제나 DNS 서버 응답에 따라 조금씩 다를 수 있으므로, 결과가 비어 있거나 예상과 다르면 nslookup 도메인명을 단독으로 실행해 원본 출력 형식을 먼저 확인해 보세요.

댓글 0

로그인 후 댓글을 남길 수 있습니다.

아직 댓글이 없습니다.