DNS解析器的脚本

时间:2019-03-06 04:56:09

标签: bash

如何使bash脚本过滤DNS解析器列表 因为结果是假阳性

建议的代码

!/bin/sh
for IP in `cat ./resolvers.txt`; do
    printf "%-4s", $IP
    dig @$IP test.com
done

test.com是我的域,我已经知道输出是什么了,那么任何不同的结果都将来自错误的解析器。

1 个答案:

答案 0 :(得分:1)

#!/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.txt

...将读取all-resolvers.txt,并将仅正确运行(将test_domain解析为correct_ip的DNS服务器的列表写为good-resolvers.txt)。


请参阅: