Bash

如何從 DNS 查詢中僅提取 IP 地址

  • December 10, 2019

我想知道如何從 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是 的 CNAME smtp.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]*$'

引用自:https://unix.stackexchange.com/questions/426693