![获取内部 DNS 名称的 IP 地址的单行代码?](https://linux22.com/image/5874/%E8%8E%B7%E5%8F%96%E5%86%85%E9%83%A8%20DNS%20%E5%90%8D%E7%A7%B0%E7%9A%84%20IP%20%E5%9C%B0%E5%9D%80%E7%9A%84%E5%8D%95%E8%A1%8C%E4%BB%A3%E7%A0%81%EF%BC%9F.png)
我有一个内部 DNS 名称,我想获取其 IP 地址。是否有一个很好的 Bash 单行代码可以将internalip1.mydomain.com 转换为 10.10.10.10?
答案1
使用该dig
命令,您不必对输出执行任何额外的解析:
$ dig stackexchange.com +short
198.252.206.140
当寻找仅供内部使用的主机名时,使用以下+search
参数可能是明智的:
$ dig myinternalhost +search +short
192.168.1.120
答案2
那这个呢?
% host -t A stackexchange.com | sed -e 's#.* has address ##'
198.252.206.140
答案3
我定期在脚本中使用它来进行变量分配。删除tr -d [:space:]
所有换行符。
host -t A hostname | awk '{print $NF}' | tr -d [:space:]
编辑(归功于@jordanm):
host -t A hostname | awk '{printf $NF}'
不需要tr
打电话。