我构建了一个查询域注册表的脚本。只是免责声明,这不是黑客攻击。我正在尝试收集我的公司未托管的域列表。假设我公司拥有的名称服务器是 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 语句可能出了什么问题?