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 语句可能出了什么问题?

相关内容