如何让bash脚本过滤DNS解析器列表,因为它有误报结果
建议的代码
!/bin/sh
for IP in `cat ./resolvers.txt`; do
printf "%-4s", $IP
dig @$IP test.com
donetest.com是我的域,我已经知道输出会是什么,那么任何不同的结果都将来自糟糕的解析器。
发布于 2019-03-06 13:55:37
#!/usr/bin/env bash
case $BASH_VERSION in '') echo "ERROR: Use bash, not sh" >&2; exit 1;; esac
test_domain="test.com"
correct_ip=1.2.3.4
while IFS= read -r ip; do
if [[ $(dig +short "@$ip" "$test_domain" 2>/dev/null) = "$correct_ip" ]]; then
printf '%s\n' "$ip"
fi
done <all-resolvers.txt >good-resolvers.txtDNS读取all-resolvers.txt,并将仅正常工作的...will服务器列表(将test_domain解析为correct_ip)写入good-resolvers.txt。
请参见:
[[ ]]。https://stackoverflow.com/questions/55015837
复制相似问题