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 도메인명을 단독으로 실행해 원본 출력 형식을 먼저 확인해 보세요.