Bash
如何從 DNS 查詢中僅提取 IP 地址
我想知道如何從 DNS / dig 查詢中僅提取 IP 地址。我正在執行的查詢如下所示:
lab-1:/var/# dig +answer smtp.mydomain.net +short smtp.ggs.mydomain.net 10.11.11.11
我希望能夠只獲得返回的 IP 地址。我目前正在使用 bash 管道和 awk 命令。但到目前為止,我沒有嘗試過任何工作。
謝謝。
我相信
dig +short
會為您輸出兩行,因為您查詢的域smtp.mydomain.net
是 的 CNAMEsmtp.ggs.mydomain.net
,並且 dig 列印中間解析度步驟。不過,您可能可以依賴 dig 輸出的最後一行作為您想要的 IP,因此應該執行以下操作:
dig +short smtp.mydomain.net | tail -n1
@dhag 的回答聽起來不錯;如果您不想“依賴 dig 輸出的最後一行作為 IP”,您可以使用
grep
僅提取數字 IP 地址:dig +short smtp.mydomain.net | grep '^[.0-9]*$'