结合 dig + 短命令

结合 dig + 短命令

此命令将显示 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

如果由于某种原因只需要一个查询,则可以使用ANYwith 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

相关内容