简单的挖掘输出?

简单的挖掘输出?

在脚本中,我希望能够轻松地将 IP 地址写入某个地方,因此我想使用带有反引号的 dig(或类似命令)。

然而,我能想到的最简单的挖掘参数输出是

> dig -t A +noall +answer www.google.com
www.google.com.     300 IN  A   173.194.66.106
www.google.com.     300 IN  A   173.194.66.104

有没有办法(额外的参数,而不是 dig 的其他工具?)可以清除 IP 地址之外的垃圾?(请不要告诉我使用 sed。

谢谢

答案1

在 CentOS 盒子上,我必须

dig +short   www.google.com
74.125.132.147
74.125.132.99
74.125.132.103
74.125.132.104
74.125.132.105
74.125.132.106

如果你只想要一个地址那么

dig +short   www.google.com | head -1

或者

dig +short   www.google.com | tail -1

答案2

sed是一个可行的选择,而彻底拒绝它是误导最好。

无论如何,尝试一下

dig -t A +noall +answer www.google.com | cut -f 6 | tail -1

答案3

对于脚本(特别是在报告中进行反向查找时),除非您需要测试特定的 DNS 功能,否则最好使用getent hosts ...这种方式,如果您正在运行本地 DNS 缓存守护程序(例如 nscd 或本地缓存 DNS 服务器,如 dnsmasqd),那么您将获得性能和缓存增益,并且不会用比必要更多的流量轰炸 DNS 服务器。

我写过使用 AWK 示例进行描述。希望它能帮助人们避免我正在工作时遇到的一些痛苦。

相关内容