检测域名解析服务器的有效性

首先使用MASSDNS进行扫描,选取其中有NXDOMAIN或NOERROR记录的,然后使用dig命令检测其有效性。

#测试域名
test_domain=example.com
#随机数生成函数
function rand(){
  cat /dev/urandom | tr -dc 'a-z0-9' | fold -w 32 | head -n 1
}
lookups=5
let "end = $lookups * $(wc -l < $tmp_path)"
#massdns扫描后的输出文件
massdns_out=/tmp/resolvers_out
#创造随机域名列表进行massdns扫描,选取其中有NXDOMAIN或NOERROR记录的
for i in $(seq 1 $end); do echo $(rand).$test_domain ; done | \
  ./bin/massdns -s 1000 -t A --predictable -r $tmp_path -o Sqrm | \
  grep -E "NXDOMAIN|NOERROR" |  \
  cut -d" " -f1,3 > $massdns_out
 #将NXDOMAIN与NOERROR记录分开,取出其中的域名解析器,并进行去重
grep "NXDOMAIN" $massdns_out | cut -d':' -f1 | sort -u > $massdns_out.NXDOMAIN
grep "NOERROR" $massdns_out | cut -d':' -f1 | sort -u > $massdns_out.NOERROR
#定义dig解析命令与最后结果输出文件
correct=$(dig $test_domain A +short)
result=./resolvers.$test_domain.txt
#对域名进行dig操作,并输出
grep -vf $massdns_out.NOERROR $massdns_out.NXDOMAIN | \
  xargs -n1 -P100 -I{} bash -c 'echo {} $(dig @{} $0 A +short)' $test_domain | \
  grep "$correct" | \
  cut -d' ' -f1 > $result
 
echo "===========================" 1>&2
echo "Resolvers saved in: $result" 1>&2
echo "===========================" 1>&2

关键命令:

tr-dc:产生随机数
fold-w:指定宽度
>> 是追加内容
> 是覆盖原有内容
< 从文件,或者其它设备输入
seq:指定一个序列
let:用于计算的工具,用于执行一个或多个表达式
grep -E 可以用来扩展选项为正则表达式,选取符合正则表达式的内容
cut -d:指定分隔符,默认为制表符
cut -f:与-d一起使用,指定显示区域
grep -f:查找文件相同内容
grep -v name:查看除了name之外的内容
grep -vf 1.txt 2.txt:查找文件不同的内容
xargs:给命令传递参数的一个过滤器,也是组合多个命令的一个工具。
xargs 可以将管道或标准输入(stdin)数据转换成命令行参数,也能够从文件的输出中读取数据。
xargs 也可以将单行或多行文本输入转换为其他格式,例如多行变单行,单行变多行。
xargs 默认的命令是 echo,这意味着通过管道传递给 xargs 的输入将会包含换行和空白,不过通过 xargs 的处理,换行和空白将被空格取代。空格是默认定界符,默认替换符号是{} 
xargs 是一个强有力的命令,它能够捕获一个命令的输出,然后传递给另外一个命令。
xargs -n: 后面加次数,表示命令在执行的时候一次用的argument的个数,默认是用所有的。
xargs -p: -p参数会提示让你确认是否执行后面的命令,y执行,n不执行。也可以可以指定并行次数。
xargs -I:将xargs的每项名称,一般是一行一行赋值给 {},可以用 {} 代替。
  • 0
    点赞
  • 0
    收藏
    觉得还不错? 一键收藏
  • 0
    评论

“相关推荐”对你有帮助么?

  • 非常没帮助
  • 没帮助
  • 一般
  • 有帮助
  • 非常有帮助
提交
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值