此命令将显示 MX 记录的输出:
dig @ns1.myname.com myname.com +short MX
这将输出 A 记录:
dig @ns1.myname.com myname.com +short A
我的问题是如何在一个输出显示中同时输出 A 和 MX 以及 +short?
更新:Cakemox 这是我收到的输出:
root@server1:~# dig +noall +answer @ns1.myname.com myname.com MX
myname.com. 86400 IN MX 10 ASPMX2.GOOGLEMAIL.COM.
myname.com. 86400 IN MX 10 ASPMX3.GOOGLEMAIL.COM.
myname.com. 86400 IN MX 1 ASPMX.L.GOOGLE.COM.
myname.com. 86400 IN MX 5 ALT1.ASPMX.L.GOOGLE.COM.
myname.com. 86400 IN MX 5 ALT2.ASPMX.L.GOOGLE.COM.
我希望只用一个 dig 命令就可以获得这种输出,而无需用分号分隔?
root@server1:~# dig @ns1.myname.com myname.com +short MX; dig @ns1.myname.com myname.com +short A
5 ALT1.ASPMX.L.GOOGLE.COM.
5 ALT2.ASPMX.L.GOOGLE.COM.
10 ASPMX2.GOOGLEMAIL.COM.
10 ASPMX3.GOOGLEMAIL.COM.
1 ASPMX.L.GOOGLE.COM.
63.98.113.202
答案1
“在一个显示器上输出”是什么意思?
由于简单性,我几乎无法想象这就是真正的答案,但是根据我现在假设的你的答案,这应该可以解决问题:
dig @ns1.myname.com myname.com +short MX; dig @ns1.myname.com myname.com +short A
您可以简单地将多个命令排列在一行中,用分号分隔它们。
答案2
dig +noall +answer @ns1.myname.com myname.com ANY
如果您不需要全部类型,您可以 grep 出您需要的类型,或者依次查询您想要的每一种类型。
答案3
您可以将它们组合成一个没有分号的命令,但正如另一个问题,它仍然会向服务器发送 2 个查询(这里不是问题):
dig @ns1.myname.com myname.com +short MX @ns1.myname.com myname.com +short A
您可以“重复使用” dig 命令并继续以四重奏形式发送新的查询参数(URL、要查询的服务器、查询类型、查询选项),只要您为其提供足够的信息来对每个四重奏运行查询即可。更简单的是,您只需指定一次服务器和查询选项,因此这有效:
dig +short @ns1.myname.com myname.com MX myname.com A
如果由于某种原因只需要一个查询,则可以使用ANY
with dig (确保你正在查询权威服务器,而不是递归服务器的缓存)并使用 -E 选项 grep 出答案:
dig +noall +answer @ns1.myname.com myname.com MX myname.com A | grep -E '[[:space:]]A[[:space:]]|MX[[:space:]]'
注意:您不能使用+short
此路线,因为它会删除您需要使用 grep 的记录类型。
答案4
如果您的版本dig
支持-f
选项(“批处理模式”),您可以让 dig 从 stdin 读取要执行的查找:
$ echo -e "a myname.com\nmx myname.com" | dig @ns1.myname.com +short -f -
1.2.3.4
10 mx.myname.com