查找主機。
創(chuàng)新互聯(lián)是專業(yè)的蜀山網(wǎng)站建設(shè)公司,蜀山接單;提供成都做網(wǎng)站、網(wǎng)站制作,網(wǎng)頁設(shè)計,網(wǎng)站設(shè)計,建網(wǎng)站,PHP網(wǎng)站建設(shè)等專業(yè)做網(wǎng)站服務(wù);采用PHP框架,可快速的進(jìn)行蜀山網(wǎng)站開發(fā)網(wǎng)頁制作和功能擴展;專業(yè)做搜索引擎喜愛的網(wǎng)站,專業(yè)的做網(wǎng)站團(tuán)隊,希望更多企業(yè)前來合作!
ls:用來顯示指定目錄下的內(nèi)容,列出指定目錄下所含的文件及子目錄。host命令是常用的分析域名查詢工具,是一個DNS查找實用程序,用于查找域名的IP地址。
lshost是linux的常用通配符號,用途代碼查詢。
域名查詢(Domain Name Query)在Linux上的執(zhí)行主要由glibc庫函數(shù) gethostbyname 與 gethostbyaddr 來完成,通過 strace 跟蹤可知 gethostbyname 的執(zhí)行流程如下:
注:關(guān)于DNS與 dig 命令的介紹請閱讀 阮一峰 老師的文章 DNS原理入門 。
先介紹下我的系統(tǒng)環(huán)境:
在 沒有 配置 nscd 的服務(wù)器上,用 strace 追蹤 gethostbyname ,其大致流程摘錄如下(省略的部分用 ...... 表示)。庫函數(shù) gethostbyname 的使用可參考 該頁面 。
要想查看某個程序是否調(diào)用 gethostbyname ,只需用 ltrace 命令跟蹤一下查看其庫函數(shù)調(diào)用即可:
注:在 man gethostbyname 中有一句:
筆者所在公司的服務(wù)器上并沒有配置 nscd ,但筆者的阿里云個人服務(wù)器上卻默認(rèn)配置了 nscd 。從 man nscd 摘錄如下:
Linux服務(wù)器上一般都會配置 dnsmasq 服務(wù),用于緩存DNS請求結(jié)果,節(jié)省應(yīng)用程序的域名解析時間。筆者的筆記本 Ubuntu 16.04 LTS 也默認(rèn)配置了 dnsmasq ,同樣筆者的 macOS Sierra 上也默認(rèn)有一個叫 mDNSResponder 的服務(wù)。 dnsmasq 簡介如下:
dnsmasq 通常會綁定本地 127.0.0.1:53 ,假設(shè)配置的DNS服務(wù)器是Google Public DNS,則 dnsmasq 的配置 /etc/dnsmasq.conf 一般如下:
這樣, /etc/resolv.conf 的配置如下。注意第一項 nameserver 是本地IP 127.0.0.1 ,也就利用上了 dnsmasq 的DNS緩存功能。
網(wǎng)絡(luò)上廣泛使用的DNS服務(wù)器通常是 bind ,簡介如下:
用 strace 追蹤可知, dig 命令是通過讀配置文件 /etc/resolv.conf ,然后向其中列出的DNS服務(wù)器發(fā)出DNS請求。
在日常開發(fā)和學(xué)習(xí)中,遇到問題或?qū)δ硞€東西感到疑惑的時候,對程序進(jìn)行調(diào)用跟蹤和對網(wǎng)絡(luò)進(jìn)行抓包,是非常有效的分析方式。
用 strace 來跟蹤系統(tǒng)函數(shù)調(diào)用,細(xì)節(jié)請參考 man strace 。
用 ltrace 來跟蹤庫函數(shù)調(diào)用,細(xì)節(jié)參考 man ltrace 。
用 wireshark (GUI)、 tshark 、 tcpdump 來進(jìn)行網(wǎng)絡(luò)抓包,細(xì)節(jié)參考各自的 man 說明頁。
更加強大和復(fù)雜的動態(tài)追蹤技術(shù),請參考 SystemTap 和DTrace( DTrace for Linux 2016 , wikipedia ),我還沒嘗試過。還可以閱讀大神章亦春(春哥)寫的文章 動態(tài)追蹤技術(shù)漫談 。
直接使用命令hostname,查看本機的主機名,\x0d\x0a配置文件在/etc/sysconfig/network下的HOSTNAME項,修改后重啟,方能起效。\x0d\x0a\x0d\x0a主機名靜態(tài)查詢表:/etc/hosts 對應(yīng)IP和域名\x0d\x0a這里稍微解釋一下主機名(hostname)與域名(domain)的區(qū)別:主機名通常在局域網(wǎng)內(nèi)使用,通過hosts文件,主機名就可以解析到對應(yīng)的IP上;域名通常是在internet上使用,通過公網(wǎng)的DNS來解析。
實際工作或者維護(hù)過程中常常需要通過域名反查下其對應(yīng)的IP地址。解決方法有多種,既可以通過網(wǎng)上提供的域名反查IP查詢工具查詢,也可以在 Linux系統(tǒng) 中通過命令進(jìn)行查詢。
本教程主要講解如何在Linux系統(tǒng)中通過命令查看域名對應(yīng)的IP地址,主要講解以下5個命令:
dig命令它是一個功能強大且靈活的命令行工具,用于查詢 DNS 名稱服務(wù)器。它執(zhí)行 DNS 查詢,并顯示來自查詢的名稱服務(wù)器的返回信息。大多數(shù) DNS 管理員使用 dig 命令來解決 DNS 問題,因為它靈活、易用且輸出清晰。
如何使用 dig 命令查找域的 IP 地址呢?看示例:
輸出:
當(dāng)然如果你需要一次查詢多個域名的IP地址,可以通過將多個域名信息放到一個文本文件中,每行一個,然后編寫shell腳本進(jìn)行讀取文件然后循環(huán)批量查詢輸出。
shell腳本命令類似如下:
host 命令可用于執(zhí)行 DNS 查詢。它通常用于將名稱轉(zhuǎn)換為 IP 地址,反之亦然。如果未提供任何參數(shù)或選項, host 將打印它的命令行參數(shù)和選項摘要。
輸出:
同理,可以通過編寫shell腳本實現(xiàn)批量查詢,示例如下:
nslookup 命令是一個用于查詢互聯(lián)網(wǎng)域名服務(wù)器(DNS)的程序。
nslookup 有兩種模式,分別是交互式和非交互式。交互模式允許用戶查詢名稱服務(wù)器以獲取有關(guān)各種主機和域的信息,或打印域中的主機列表。非交互模式用于僅打印主機或域的名稱和請求的信息。
它是一個網(wǎng)絡(luò)管理工具,可以幫助診斷和解決 DNS 相關(guān)問題。命令示例如下:
輸出:
同理,使用以下 bash 腳本查找多個域的 IP 地址
fping 命令是類似 ping 之類的程序,它使用互聯(lián)網(wǎng)控制消息協(xié)議(ICMP)echo 請求來確定目標(biāo)主機是否響應(yīng)。
fping 與 ping 不同,因為它允許用戶并行 ping 任意數(shù)量的主機。另外,它可以從文本文件輸入主機。
fping 發(fā)送 ICMP echo 請求,并以循環(huán)方式移到下一個目標(biāo),并且不等到目標(biāo)主機做出響應(yīng)。
如果目標(biāo)主機答復(fù),那么將其標(biāo)記為活動主機并從要檢查的目標(biāo)列表中刪除;如果目標(biāo)在特定時間限制和/或重試限制內(nèi)未響應(yīng),那么將其指定為不可訪問。
fping命令程序并不默認(rèn)安裝在 Linux發(fā)行版 中,一般需要進(jìn)行安裝,常見的發(fā)行版安裝命令如下:
Ubuntu / Debian / LinuxMint
Fedora / CentOS / RHEL
fping默認(rèn)使用示例:
輸出:
更多關(guān)于fping的使用方法可以通過在終端中鍵入 man fping 來學(xué)習(xí)。
ping 命令(數(shù)據(jù)包互聯(lián)網(wǎng)抓手Packet Internet Groper)是一個網(wǎng)絡(luò)程序,用于測試 Internet 協(xié)議(IP)網(wǎng)絡(luò)上主機的可用性/連接性。
ping命令通過向目標(biāo)主機發(fā)送互聯(lián)網(wǎng)控制消息協(xié)議(ICMP)Echo 請求數(shù)據(jù)包并等待 ICMP Echo 應(yīng)答來驗證主機的可用性。
它基于發(fā)送的數(shù)據(jù)包、接收的數(shù)據(jù)包、丟失的數(shù)據(jù)包,通常包含最小/平均/最大時間來匯總統(tǒng)計結(jié)果。
命令示例:
輸出:
我們可以看到輸出內(nèi)容中起對應(yīng)的IP地址,如果需要過濾輸出,增加更多相應(yīng)的命令處理:
輸出:
以上內(nèi)容為在 Linux系統(tǒng) 中使用5個命令來獲取域名對應(yīng)的IP地址。建議你可以在自己的服務(wù)器或者自己的Linux同上進(jìn)行嘗試,也可以通過編寫shell腳本進(jìn)行批量處理或通過相應(yīng)的命令對輸出進(jìn)行處理輸出自己想要的內(nèi)容。