我需要对域和这些域别名进行挖掘,结果将是:
IF域(没有别名)并且正在使用我的名称服务器 – >然后打印出来
如果域和别名都使用我的名称服务器 – >然后打印出来
其他一切都没有(包括域名使用我的名字服务器和别名时).
我有存储在MySQL中的域名,我正在处理的脚本:
for domain in `echo "$QUERY1" | MysqL -N -s -u $USER -p$PASS $dbnAME -h$HOST | awk '{print $1}'; do
lookup=$(dig $domain ns +short)
if [[ "$lookup" =~ 'XXX' ]]; then
our=1
break
else
our=0
break
fi
done
在这个QUERY中,我列出了所有内容(包括域和别名).我当然可以创建另一个查询来仅列出别名或仅列出域.
似乎我需要将域的所有别名组合在一起并循环遍历域名别名列表.如果任何一个不使用NS,我将不得不设置指示打印域的变量.
请告诉我,您有什么想法,请尽可能分享解决方案.
解决方法:
考虑以下替代您正在处理的脚本:
MysqL --silent --skip-column-names \
--user="$USER" --password="$PASSWORD" \
--host="$HOST" --database="$dbnAME" \
--execute="$QUERY1" |
awk '{ printf("%s ns +short\n", $1) }' |
if dig -f - | grep -q "XXX"; then
our=1
else
our=0
fi
我更喜欢在脚本中使用长选项,因为它们是自我记录的.
$QUERY1中的查询可以通过不需要awk的方式来制作:
SELECT CONCAT(column, " ns +short") FROM ...
我已经挖掘了来自awk的管道标准输入的查询,grep帮助我们在输出中找到XXX.
不需要杂乱的循环.
显然,它最终没有做你想做的事情,只是你现在做的事情,但由于我不太了解DNS查询,我会留下它.
版权声明:本文内容由互联网用户自发贡献,该文观点与技术仅代表作者本人。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如发现本站有涉嫌侵权/违法违规的内容, 请发送邮件至 [email protected] 举报,一经查实,本站将立刻删除。