DNS 쿼리 논리 오류

DNS 쿼리 논리 오류

도메인 레지스트리를 쿼리하는 스크립트를 작성했습니다. 단지 면책 조항입니다. 이것은 해킹이 아닙니다. 회사에서 호스팅하지 않는 도메인 목록을 수집하려고 합니다. 우리 회사가 소유한 네임서버가 ns.foo.net이라고 가정하면 내 스크립트는 다음을 수행합니다.

  1. 각 도메인의 네임서버를 찾으려면 whois를 확인하세요.
  2. 그런 다음 A 레코드(쿼리에서 찾은 NameServer)가 IP 주소와 일치하는지 확인하세요.
  3. 네임서버가 당사 소유가 아니고 도메인의 A 레코드가 당사 소유가 아닌 경우 목록에 추가하세요. 그렇지 않으면 이를 무시하고 목록 탐색을 계속하십시오.

또한 도메인 목록이 다음과 같다고 가정합니다.

example.net
exampleagain.org
blah.org
whatever.com

이것은 내 스크립트입니다.

#!/bin/bash

FILE=sites.txt
REGEX="Name Server"
OUR_IP="192.168.5.10"

#Read from Text file
while read -r line; do
        SERVER=`whois "$line" | grep -m 1 "$REGEX" | awk '{print $3}'`
        shopt -s nocasematch
        HOST=`host -ta "$line" "$SERVER"`
        if [[ ! "$SERVER" =~ foo.net && ! "$HOST" =~ "$OUR_IP" ]]; then
                echo "$line" >> results.txt
        fi
        sleep 1;
done<"$FILE"

추가된 도메인에 $OUR_IP에 대한 A 레코드가 포함되어 있고 때로는 foo.net(내 도메인)이 포함되어 있는 것을 확인했습니다. 논리를 깨뜨리는 if 문에 어떤 문제가 있을 수 있나요?

관련 정보