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万+
發表評論
所有評論
還沒有人評論,想成為第一個評論的人麼? 請在上方評論欄輸入並且點擊發布.
相關文章