linux下gethostbyname工作原理

2021-09-28 22:42:32 字數 596 閱讀 3582

既然這兩個函式能夠轉換 ip 和網域名稱,那麼,它們就會去訪問dns伺服器嗎?如果真的要去訪問,網路不通的情況下,它們又怎麼辦呢?帶著這些疑問,我在網上查了一下,並根據提示,做了一下試驗,簡單總結了一下:

gethostbyname(網域名稱->ip)、gethostbyaddr(ip->網域名稱)在解析的時候,系統缺省會先到 /etc/hosts 檔案中去尋找匹配資訊,然後再到dns伺服器去解析,這個順序是可以交換的,只要修改 /etc/host.conf 裡的 host(本機) 和 bind(dns伺服器) 的順序即可,我們做個試驗:

在dns伺服器配置正常的情況下,gethostbyname的引數為「www.baidu.com」能正常解析,禁掉dns就不能正常工作了。但是如果把它和 ip 的對映對新增到 /etc/hosts 檔案中,則函式又能正常工作了。例如我們在 /etc/hosts 檔案裡新增這樣一組對映:

12.34.56.78                      www.baidu.com
則在執行這兩個函式的時候,就會返回對映對對應的資訊。

注:ihost進行環境配置便是利用的 /etc/hosts裡進行繫結

未完待續… 等待後續整理

Linux下Redis下安裝

redis安裝 檢查是否安裝redis ps ef grep redis2.檢查gcc服務是否安裝成功 rpm qa grep gcc注 安裝成功則顯示 mkdir redis5.解壓redis安裝包 tar zxvf redis 2.8.17 tar.gz c usr local redis 解壓...

Linux下程式設計

windows下我的環境為 windows10 vs2015 opencv3.4.0 opencv3.4.0 contrib python linux下我的環境為 ubuntu16004 也有ubuntu1804 opencv3.4.0 opencv3.4.0 contrib python gnu ...

linux下萬用字元

萬用字元是一類鍵盤字元,有星號 和問號 當查詢檔案呀資料夾時,可以使用它來代替乙個或多個真正字元 當不知道真正字元或者不想建入完整名字時,常常使用萬用字元代替乙個或多個真正字元。星號 可以使用星號代替0個或多個字元。如果正在查詢以aew開頭的乙個檔案,但不記得檔名其餘部分,可以輸入aew,查詢以ae...