在脚本中,我希望能够轻松地将 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 示例进行描述。希望它能帮助人们避免我正在工作时遇到的一些痛苦。