DNS查询脚本

DNS查询脚本

我正在尝试获取某些域的所有 A 记录。我发现的最好的方法是使用https://www.whatsmydns.net和下一个工具。问题是复制粘贴它们并对所有垃圾进行分类的速度非常慢。我尝试了一些抓取,但 javascript 意味着它有一半的时间会中断。

另一个想法是只从我的服务器运行 dns 查询,但我不确定这有多有效,因为大多数 dns 服务器都是任播的。

是否可以编写一个脚本来执行“nslookup google.com 8.8.8.8”并继续遍历dns服务器列表,然后仅将A记录中的IP地址输出到名为google.com.txt或其他内容的文件中并删除任何重复项。

提前致谢!

答案1

dig(1)or命令host(1)可以自动查找A记录:

% for d in example.com example.org; do dig +short A $d; done 
93.184.216.34
93.184.216.34
% for d in example.com example.org; do host -t A $d; done                   
example.com has address 93.184.216.34
example.org has address 93.184.216.34
%

作为脚本,一种方法是:

$ cat domlu
#!/bin/sh
# accepts list of domains one per line on standard input, emits unique
# A records for said domains (assuming no errors, etc).
( while read domain; do
  dig +short A "$domain"
done ) | sort -u
$ cat hl
example.com
example.org
$ chmod +x domlu 
$ ./domlu < hl
93.184.216.34
$ 

相关内容