如何从 DNS 查询中仅提取 IP 地址

如何从 DNS 查询中仅提取 IP 地址

在 Alpine Linux 上,我想知道如何从 DNS / dig 查询中提取 IP 地址。我正在运行的查询如下所示:

lab-1:/var/# dig +answer smtp.mydomain.net +short   
smtp.ggs.mydomain.net
10.11.11.11

我希望能够只返回 IP 地址。我目前正在使用 bash 管道和 awk 命令。但到目前为止,我所尝试的一切都不起作用。

谢谢。

答案1

我相信dig +short会为您输出两行,因为您查询的域smtp.mydomain.net是 的 CNAME smtp.ggs.mydomain.net,并且 dig 会打印中间解析步骤。

不过,您可能可以依赖 dig 输出的最后一行作为您想要的 IP,因此应该执行以下操作:

dig +short smtp.mydomain.net | tail -n1

答案2

@dhag 的回答听起来不错;如果您不想“依赖 dig 输出的最后一行作为 IP”,您可以使用grep仅提取数字 IP 地址:

dig +short smtp.mydomain.net | grep '^[.0-9]*$'

相关内容