1. DNS解析场景
这世间很多事都是静悄悄地运转着,没有惊天动地的大事,没有春花秋月。嗯,没错,DNS就是这样,平时无声无息,但是一旦没了,就上不了网了。
当您打开浏览器、输入内容并按下 Enter 键时,您的计算机上会发生什么?
其实在浏览器中输入地址之后,电脑并不能直接访问该网站,因为有相关网络知识的同学都知道,数据包在网络链路传输过程中,路由转发是数据到达目的地的核心过程。数据包不断的转发过程就像快递的转发一样,经过我反复的转发,最终才送到你的手里。
每次传输过程只有源IP和目的IP,显然没有URL这个东西,DNS就是把你要访问的URL转换成IP地址。
2.DNS介绍
打开网络设置并检查属性。或者适配器-->属性-->IPV4 协议
你在图中看到的DNS服务器就是DNS提供服务的来源。
3.DNS 协议
直接上顶啊不对直接上图,百度百科就对了
DNS从本质上来说是一种在UDP层规定数据报内容规则和业务逻辑的协议。
简单来说,DNS协议就是一种报文格式规范,它告诉你该报文里面包含哪些字节,你可以根据内容来组装报文,进行DNS解析。
这意味着我可以自己构建一个 UDP 消息?将它发送到 DNS 服务器的端口?然后它会返回一个符合 DNS 协议的消息,其中包含解析后的 IP 地址?
开始吧。
4.拦截DNS消息
直接打开,随便设置一个数据包拦截过滤器,随便打开一个CMD,随便想想,PING一下网址就能得到地址,盲猜这里面肯定有DNS解析,开始干活
5. DNS报文解析
这个很简单,百度一下DNS协议报文格式就行,是UDP,所以第一个包是发送请求,第二个包是响应。
百度搜索看看DNS报文格式是怎样的。同样结合截获的数据包报文分析。
小鲨鱼的标记很清晰,每个字段对应的名称和字节数,这就是请求的工作原理。OK,我们创建一个并尝试一下。
6. 自己发送 DNS 消息
找个UDP测试工具,用114.114.114.114试试,照着前面的例子发个包看看有没有回应,Nice,直接收到DNS回应包了。
OK,和小鲨鱼剪出来的包对比分析一下,看看是否合适。
没有问题,可以看出最后4个字节就是IP地址,所以我们用计算器粗略的算一下,看看结果是否正确。
使用计算器逐字节转换十六进制,DNS结果是39.156.66.14
在浏览器中验证:
没问题,这正是我们期望的。让我们编写一些代码并尝试一下。
7.编写代码解析DNS,实现域名解析
只需编写几行代码并尝试UDP发送和接收。
收工!
扫一扫在手机端查看
-
Tags : 域名可以自己解析吗
我们凭借多年的网站建设经验,坚持以“帮助中小企业实现网络营销化”为宗旨,累计为4000多家客户提供品质建站服务,得到了客户的一致好评。如果您有网站建设、网站改版、域名注册、主机空间、手机网站建设、网站备案等方面的需求,请立即点击咨询我们或拨打咨询热线: 13761152229,我们会详细为你一一解答你心中的疑难。