![DNS查询脚本](https://linux22.com/image/71628/DNS%E6%9F%A5%E8%AF%A2%E8%84%9A%E6%9C%AC.png)
我正在尝试获取某些域的所有 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
$