只要向网关或都域名服务器的53端口发送一个DNS查询报文,就可以收到服务器响应的报文,解析这个报文就可以得到域名对应的IP地址。(使用的是UDP的53端口,UDP配置为192.168.1.1远程端口53本地端口1000)

DNS查询包的编码:(以www.baidu.com为例)

3E 3A //为标识字段
01 00 //为标志字段,该字段设置了TC表示该报文是可截断的
00 01 //查询报文数量为1
00 00 00 00 00 00 //表示回答,授权和额外信息都为0
03 77 77 77 05 62 61 69 64 75 03 63 6F 6D 00 //表示查询的名字为www.baidu.com
00 01 //为类型,1表示A查询
00 01 //为类型,1表示Internet数据

DNS响应包:(以www.baidu.com为例)

3E 3A //为标识字段
81 80 //为标志字段,其中设置了QR = 1,RD = 1,RA = 1
00 01 //问题数1
00 03 //回答数3
00 00 00 00
03 77 77 77 05 62 61 69 64 75 03 63 6F 6D 00 //表示查询的名字为www.baidu.com
00 01 //为类型,1表示A查询
00 01 //为类型,1表示Internet数据
C0 0C //为域名指针
00 05 //表示CNAME(规范名称)
00 01 //为类型,1表示Internet数据
00 00 03 4B //生存时间
00 0F //数据长度
03 77 77 77 01 61 06 73 68 69 66 65 6E C0 16
C0 2B 00 01 00 01 00 00 00 63
00 04 //IP v4
79 0E 59 0A //IP1
C0 2B 00 01 00 01 00 00 00 63
00 04 //IP v4
79 0E 58 4C //IP2

简单点的话就是回复包的最后四字节就是域名的对应的个IP,稍微有点注意的是查询包里的域名的编码。
域名的编码格式:以’.’把域名分成多个标示符序列,每个序列的首字节说明该标示符的长度,最后以0结束。
www.baidu.com 对应 03 77 77 77 05 62 61 69 64 75 03 63 6F 6D 00
www 03 77 77 77
baidu 05 62 61 69 64 75
com 03 63 6F 6D

实验数据如下:
响应报文格式如下:

具体说明请看https://jocent.me/2017/06/18/dns-protocol-principle.html#_label2_1
3E 3A //回话标志
81 80 //为标志字段,其中设置了QR = 1,RD = 1,RA = 1
00 01 //1个问题
00 03 //三个资源
00 00 00 00 //无授权资源,无附加资源
03 77 77 77 05 62 61 69 64 75 03 63 6F 6D 00 // 03 WWW 05 baidu 03 com 0
00 01 //为类型,1表示A查询
00 01 //为类型,1表示Internet数据

C0 0C //为域名指针C0固定 0C开始处地址 从C0开始从0计数(也就是从C0数到03)
00 05 //表示CNAME(规范名称)
00 01 //为类型,1表示Internet数据
00 00 02 22 //生存时间
00 12 //数据长度
03 77 77 77 01 61 06 73 68 69 66 65 6E 03 63 6F 6D 00 //03 WWW 01 a 06 shifen 03 com

C0 2B //C0固定 2B从最上面的C0开始计数到IPV4的开始处(也就是从第一个C0 数到0E)
00 01 //查询类型1表示IPv4地址
00 01 //为类型,1表示Internet数据
00 00 02 22 //生存时间
00 04 //四个字节
0E D7 B1 27 //(14 215 177 39)IPV4的IP地址

C0 2B //C0固定 2B从最上面的C0开始计数到IPV4的开始处(略过同段)
00 01 00 01 00 00 02 22 //同上
00 04 //四个字节
0E D7 B1 26 //(14 215 177 38)IPV4的IP地址

参考:http://blog.sina.com.cn/s/blog_58b5cfcc0100kh9t.html

通过UDP解析域名 DNS解析相关推荐

  1. 修改统计服务器ip到域名,国内、国际域名DNS解析设置详解

    域名注册完成后,要想正常使用,还需要进行域名DNS解析设置,本文介绍Godaddy的域名DNS控制设置方法,顺便把国内域名管理后台也做个图解,方便新手网友对照参考,关于DNS解析知识涉及面也比较广,但 ...

  2. 域名DNS解析发生故障了怎么办?

    说起域名DNS故障很多人都不清楚这背后的危害,资料显示,2016年10月,美国著名的DNS服务提供商Dyn被攻击,导致半个美国网络瘫痪;2017年3月,世界最大域名注册商.Web主机托管公司GoDad ...

  3. 2.ipv6苹果上线 新网域名不支持AAAA 域名DNS解析AAAA -----如何将DNS从新网转到DNSPod?

    转自:http://blog.csdn.net/zhanglizhi111/article/details/79196670 最近新网的大姨妈又开始了,导致了我很多域名无法解析,新网这样频繁出问题实在 ...

  4. 域名DNS解析工具ping/nslookup/dig/host

    常见 DNS 记录的类型 类型 目的 A 地址记录,用来指定域名的 IPv4 地址,如果需要将域名指向一个 IP 地址,就需要添加 A 记录. AAAA 用来指定主机名(或域名)对应的 IPv6 地址 ...

  5. 腾讯云域名解析教程(域名DNS解析到公网IP地址)

    在腾讯云申请注册的域名如何解析?DNSPod并入腾讯云,腾讯云域名解析是在DNS解析DNSPod控制台操作的,腾讯云百科来详细详细说下腾讯云域名解析教程: 腾讯云域名解析教程 DNSPod帝思普并入腾 ...

  6. 域名dns 域名dns解析查询

    域名系统(英文:Domain Name System,缩写:DNS)是互联网的一项服务.它作为将域名和IP地址相互映射的一个分布式数据库,能够使人更方便地访问互联网. 最近入职了一家SEO公司,接手管 ...

  7. cname解析教程_域名cname怎么解析 域名cname解析设置方法

    所谓的域名CNAME解析就是别名解析意思.基本上设置CNAME解析的话都是搞搞网站的朋友,很多人没有花钱买空间,用了一些免费的空间,然后自己搭建网站,当然最后就是需要CNAME解析域名咯,不然你的网站 ...

  8. dot.tk+namecheap.com搭建免费顶级域名+快速动态域名+Dns解析

    注:此文章2010年所写,后面更新过几次,现在已经好几年未更新了. 一.简单介绍 玩玩自己的顶级域名,是不是很爽呢?今天介绍的这个真是太完美了,全程免费,一流服务 .TK是南太平洋岛国托克劳的国家域名 ...

  9. 阿里云域名DNS解析到网站服务器空间IP地址教程

    阿里云域名添加网站解析是指域名解析到网站空间或服务器的IP地址,实现通过域名可以访问网站的效果,阿里云百科分享阿里云域名解析到服务器或空间IP地址的教程: 阿里云域名添加网站解析教程 阿里云域名解析到 ...

  10. 自己制作dns解析服务器,如何使用自己的DNS服务器解析域名,架设自己的DNS服务器...

    一,DNS自己解析需要两台服务器. 二,在添加删除windows组件安装中,服务服务中安装DNS服务 三,到注册商中,将你这两台服务器的IP,都在"注册DNS服务器中",注册一个有 ...

最新文章

  1. python使用循环嵌套显示数字金字塔_如何使用Python生成数字金字塔?
  2. SAP S4HANA 介绍LTMC的文章链接
  3. Dubbo 在maven项目中的应用
  4. HTML之iframe内联框架
  5. 前端跨域问题解决方案汇总
  6. kali Linux 安装
  7. 七月工作笔记 7.7 - 7.11
  8. JVM—垃圾回收GC算法
  9. bgll算法 matlab,一种复杂网络社区检测的方法与流程
  10. python用一维数组存储学号和成绩、然后按成绩排序输出_九度oj 题目1196:成绩排序...
  11. Qt---MaintenanceTool
  12. Atitit.数据库事务隔离级别 attilax 总结
  13. 做个vbs整人小程序
  14. intel 电脑棒一代linux,拆解:英特尔黑科技——电脑棒
  15. 计算32768晶体的负载电容,与晶体手册电容匹配
  16. 【树莓派】搭建OpenWrt软路由,并作为旁路由的配置与应用方法
  17. Maven环境下测试库和开发库的配置策略以及支持工具
  18. 疑难杂症、易混淆、易遗忘的知识点记录
  19. apigateway-kong(二)admin-api(结合实例比官网还详细)
  20. Java对象内存布局(JOL)

热门文章

  1. GBIC模块、SFP模块、SFF模块介绍
  2. 电脑使用VMware安装Android系统
  3. python报错 unexpected keyword argument ‘categories‘
  4. 论文学习——多元时间序列相似性度量方法
  5. 这些问题你是否也有中招?TMT行业质量报告新鲜出炉
  6. 前端实习生必看(前端实习需要达到什么水平)
  7. 1分钟教你快速使用C#查找和替换PDF文件中的文本
  8. 这些高逼格的网站设计,能看到无数美的东西~
  9. Android实现微信悬浮窗
  10. C语言学习教程二C语言初探