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