5 個用於在 Linux 終端中查詢域名 IP 地址的命令

Magesh Maruthamuthu發表於2019-12-03

本教程介紹瞭如何在 Linux 終端驗證域名或計算機名的 IP 地址。本教程將允許你一次檢查多個域。你可能已經使用過這些命令來驗證資訊。但是,我們將教你如何有效使用這些命令在 Linux 終端中識別多個域的 IP 地址資訊。

可以使用以下 5 個命令來完成此操作。

  • dig 命令:它是一個用於查詢 DNS 名稱伺服器的靈活命令列工具。
  • host 命令:它是用於執行 DNS 查詢的簡單程式。
  • nslookup 命令:它用於查詢網際網路域名伺服器。
  • fping 命令:它用於向網路主機傳送 ICMP ECHO_REQUEST 資料包。
  • ping 命令:它用於向網路主機傳送 ICMP ECHO_REQUEST 資料包。

為了測試,我們建立了一個名為 domains-list.txt 的檔案,並新增了以下域。

# vi /opt/scripts/domains-list.txt

2daygeek.com
magesh.co.in
linuxtechnews.com

方法 1:如何使用 dig 命令查詢域的 IP 地址

dig 命令代表 “域名資訊抓手Domain Information Groper”,它是一個功能強大且靈活的命令列工具,用於查詢 DNS 名稱伺服器。

它執行 DNS 查詢,並顯示來自查詢的名稱伺服器的返回資訊。大多數 DNS 管理員使用 dig 命令來解決 DNS 問題,因為它靈活、易用且輸出清晰。

它還有批處理模式,可以從檔案讀取搜尋請求。

# dig 2daygeek.com | awk '{print $1,$5}'

2daygeek.com. 104.27.157.177
2daygeek.com. 104.27.156.177

使用以下 bash 指令碼查詢多個域的 IP 地址。

# vi /opt/scripts/dig-command.sh

#!/bin/bash
for server in `cat /opt/scripts/domains-list.txt`
do echo $server "-"
dig $server +short
done | paste -d " " - - -

新增以上內容到指令碼後,給 dig-command.sh 檔案設定可執行許可權。

# chmod +x /opt/scripts/dig-command.sh

最後執行 bash 指令碼獲得輸出。

# sh /opt/scripts/dig-command.sh

2daygeek.com - 104.27.156.177 104.27.157.177
magesh.co.in - 104.18.35.52 104.18.34.52
linuxtechnews.com - 104.27.144.3 104.27.145.3

如果要在一行中執行上面的指令碼,請使用以下指令碼。

# for server in 2daygeek.com magesh.co.in linuxtechnews.com; do echo $server "-"; dig $server +short; done | paste -d " " - - -

或者,你可以使用以下 Shell 指令碼查詢多個域的 IP 地址。

# for server in 2daygeek.com magesh.co.in linuxtechnews.com; do dig $server | awk '{print $1,$5}'; done

2daygeek.com. 104.27.157.177
2daygeek.com. 104.27.156.177
magesh.co.in. 104.18.34.52
magesh.co.in. 104.18.35.52
linuxtechnews.com. 104.27.144.3
linuxtechnews.com. 104.27.145.3

方法 2:如何使用 host 命令查詢域的 IP 地址

host 命令是一個簡單的命令列程式,用於執行 DNS 查詢。它通常用於將名稱轉換為 IP 地址,反之亦然。如果未提供任何引數或選項,host 將列印它的命令列引數和選項摘要。

你可以在 host 命令中新增特定選項或記錄型別來檢視域中的所有記錄型別。

# host 2daygeek.com | grep "has address" | sed 's/has address/-/g'

2daygeek.com - 104.27.157.177
2daygeek.com - 104.27.156.177

使用以下 bash 指令碼查詢多個域的 IP 地址。

# vi /opt/scripts/host-command.sh

for server in `cat /opt/scripts/domains-list.txt`
do host $server | grep "has address" | sed 's/has address/-/g'
done

新增以上內容到指令碼後,給 host-command.sh 檔案設定可執行許可權。

# chmod +x /opt/scripts/host-command.sh

最後執行 bash 指令碼獲得輸出。

# sh /opt/scripts/host-command.sh

2daygeek.com - 104.27.156.177
2daygeek.com - 104.27.157.177
magesh.co.in - 104.18.35.52
magesh.co.in - 104.18.34.52
linuxtechnews.com - 104.27.144.3
linuxtechnews.com - 104.27.145.3

方法 3:如何使用 nslookup 命令查詢域的 IP 地址

nslookup 命令是用於查詢網際網路域名伺服器(DNS)的程式。

nslookup 有兩種模式,分別是互動式和非互動式。互動模式允許使用者查詢名稱伺服器以獲取有關各種主機和域的資訊,或列印域中的主機列表。非互動模式用於僅列印主機或域的名稱和請求的資訊。

它是一個網路管理工具,可以幫助診斷和解決 DNS 相關問題。

# nslookup -q=A 2daygeek.com | tail -n+4 | sed -e '/^$/d' -e 's/Address://g' | grep -v 'Name|answer' | xargs -n1

104.27.157.177
104.27.156.177

使用以下 bash 指令碼查詢多個域的 IP 地址。

# vi /opt/scripts/nslookup-command.sh

#!/bin/bash
for server in `cat /opt/scripts/domains-list.txt`
do echo $server "-"
nslookup -q=A $server | tail -n+4 | sed -e '/^$/d' -e 's/Address://g' | grep -v 'Name|answer' | xargs -n1 done | paste -d " " - - -

新增以上內容到指令碼後,給 nslookup-command.sh 檔案設定可執行許可權。

# chmod +x /opt/scripts/nslookup-command.sh

最後執行 bash 指令碼獲得輸出。

# sh /opt/scripts/nslookup-command.sh

2daygeek.com - 104.27.156.177 104.27.157.177
magesh.co.in - 104.18.35.52 104.18.34.52
linuxtechnews.com - 104.27.144.3 104.27.145.3

方法 4:如何使用 fping 命令查詢域的 IP 地址

fping 命令是類似 ping 之類的程式,它使用網際網路控制訊息協議(ICMP)echo 請求來確定目標主機是否響應。

fpingping 不同,因為它允許使用者並行 ping 任意數量的主機。另外,它可以從文字檔案輸入主機。

fping 傳送 ICMP echo 請求,並以迴圈方式移到下一個目標,並且不等到目標主機做出響應。

如果目標主機答覆,那麼將其標記為活動主機並從要檢查的目標列表中刪除;如果目標在特定時間限制和/或重試限制內未響應,那麼將其指定為不可訪問。

# fping -A -d 2daygeek.com magesh.co.in linuxtechnews.com

104.27.157.177 (104.27.157.177) is alive
104.18.35.52 (104.18.35.52) is alive
104.27.144.3 (104.27.144.3) is alive

方法 5:如何使用 ping 命令查詢域的 IP 地址

ping 命令資料包網際網路抓手Packet Internet Groper)是一個網路程式,用於測試 Internet 協議(IP)網路上主機的可用性/連線性。

通過向目標主機傳送網際網路控制訊息協議(ICMP)Echo 請求資料包並等待 ICMP Echo 應答來驗證主機的可用性。

它基於傳送的資料包、接收的資料包、丟失的資料包,通常包含最小/平均/最大時間來彙總統計結果。

# ping -c 2 2daygeek.com | head -2 | tail -1 | awk '{print $5}' | sed 's/[(:)]//g'

104.27.157.177

使用以下 bash 指令碼查詢多個域的 IP 地址。

# vi /opt/scripts/ping-command.sh

#!/bin/bash
for server in `cat /opt/scripts/domains-list.txt`
do echo $server "-"
ping -c 2 $server | head -2 | tail -1 | awk '{print $5}' | sed 's/[(:)]//g'
done | paste -d " " - -

新增以上內容到指令碼後,給 ping-command.sh 檔案設定可執行許可權。

# chmod +x /opt/scripts/ping-command.sh

最後執行 bash 指令碼獲得輸出。

# sh /opt/scripts/ping-command.sh

2daygeek.com - 104.27.156.177
magesh.co.in - 104.18.35.52
linuxtechnews.com - 104.27.144.3

via: https://www.2daygeek.com/linux-command-find-check-domain-ip-address/

作者:Magesh Maruthamuthu 選題:lujun9972 譯者:geekpi 校對:wxy

本文由 LCTT 原創編譯,Linux中國 榮譽推出

5 個用於在 Linux 終端中查詢域名 IP 地址的命令

訂閱“Linux 中國”官方小程式來檢視

相關文章