dns,domain name system,域名系統,把域名轉化成ip的系統。html
先來看几上工具的使用,這幾個工具都能把域名轉換成ip,都使用了dns。dns就比如數據庫,經過對它的查詢,能給url找到對應的ip。python
dig的簡單使用是這樣:數據庫
dig baidu.com服務器
下面是這個命令的輸出以及註解:
網絡
上面的截圖顯示小程使用的dns服務器是10.255.107.7(默認端口53),這個dns服務器在哪裏設置呢?小程是mac機,在網絡設置裏面,能夠設置,看截圖:
dom
從截圖可見,既能夠設置內網的dns服務器,也能夠直接設置成公網的dns服務器,好比114.xx或8.8.8.8等。函數
在使用dig時,也能夠直接指定使用哪一個dns服務器進行查詢,好比這樣:工具
dig @114.114.114.114 baidu.compost
查詢結果以下:
url
若是隻是想簡單地看到域名對應的ip,能夠這樣使用dig:
dig +short baidu.com
顯示結果以下:
dig能夠把域名轉成ip,也能夠把某些ip轉出域名:
dig -x ip
好比下圖:
若是某些ip沒法轉出域名,並且使用了+short參數,那就會看不到返回信息。
host命令使用簡單:
host baidu.com
host也能夠把某些ip轉換成域名,但只是某些。
nslookup是一個交互的命令,輸入域名,輸出ip,好比:
whois顯示域名的註冊信息,好比:
以上是現成工具的使用,這裏再介紹一下代碼的實現。
好比,用python的dnspython,代碼實現域名解析。
先安裝dnspython:
pip install dnspython
而後實現,代碼與執行效果以下:
再好比,使用c的getaddrinfo函數,也能夠實現把域名轉換成ip(包括ipv4跟ipv6),這裏不細說了。
IOS客戶端源碼、API源碼呈獻給你們,完整的示例你們能夠到AppStore下載安裝「知音」。