ドメインレジストリを照会するスクリプトを作成しました。ただ免責事項です。これはハッキングではありません。会社がホストしていないドメインのリストを収集しようとしています。私たちの会社が所有するネームサーバーが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ステートメントにはどのような問題がありますか?