Dns解析(上)

DnsDomain Name Server)即域名服務器,在網絡中承擔着將域名轉換爲ip地址的工作。在很多編程中都要用到這種技術,就是使用域名解析。這篇文章將說明這項技術。


通過Dns服務器,可以查詢很多地址,比如mail服務器地址,ftp服務器等等,我在這裏就以mail服務器爲例,並以java實現。


+---------------------+


    |        Header       |


    +---------------------+


    |       Question      |


    +---------------------+


    |        Answer       |


    +---------------------+


    |      Authority      |


    +---------------------+


    |      Additional     |


+---------------------+


這個表是從rfc1035文檔中拷出來的,大致說明了dns包的格式。


Header


       這個也是從rfc文檔中拷出來的,只是我將其頭部數字改成16進制了。


 


ID: 16位的一個標誌,用以驗證請求和回覆消息的匹配。就實用程序產生一個16位的隨機數。


QR: 1位數據表明這是一個請求,還是一個回覆(0爲請求,1爲恢復)。


Opcode: 4位的數據表示查詢的類型。


0             基本查找


1             反向查找


2             查詢服務器情況


3-15        保留


RD:(recursion desired)即是否以遞歸方式的查詢,RD=1爲遞歸。

RA:(Recursion Available)表示服務器是否支持遞歸方式查詢,只在回覆中有效。

QDCOUNT16位數據表示要查詢的問題個數。

ANCOUNT16位數據表示回覆結果的個數,只在回覆中有效。

 


其他幾個請參考rfc文檔,在這裏我們只用這些,並將其他參數設爲0


 


Question

 

 



 


 


 

 

 

 

 

 

 

 


 


 


<script type="text/javascript"> window.open=NS_ActualOpen; </script>
   
發佈了4 篇原創文章 · 獲贊 0 · 訪問量 3萬+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章