도메인 레지스트리를 쿼리하는 스크립트를 작성했습니다. 단지 면책 조항입니다. 이것은 해킹이 아닙니다. 회사에서 호스팅하지 않는 도메인 목록을 수집하려고 합니다. 우리 회사가 소유한 네임서버가 ns.foo.net이라고 가정하면 내 스크립트는 다음을 수행합니다.
- 각 도메인의 네임서버를 찾으려면 whois를 확인하세요.
- 그런 다음 A 레코드(쿼리에서 찾은 NameServer)가 IP 주소와 일치하는지 확인하세요.
- 네임서버가 당사 소유가 아니고 도메인의 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 문에 어떤 문제가 있을 수 있나요?