域名是如何变成IP的
本教程是博主个人心血,禁止转载!!
01_一次Http请求都干了啥
问题引入
我们上篇博客做了一个Http请求的抓包,里面只是介绍了抓到的大概有哪些内容。
好了,先做一个回顾。
上次我们说道:一次http请求分为三部分:建立连接;发送请求和接受响应;断开连接。 这个呢就先记住,里面具体的呢,我们慢慢的搞起来,贪多了也搞不烂。
再看截图,这张截图是我又按照上篇的博客重新做了一次,所以里面的IP地址有所变化,但是操作是一样的,这次我们只关注截图里面的两个IP地址:
好了,这两个IP地址就是我们今天研究的主题, 我们先弄清楚这两个IP地址的时如何来的?
这里面涉及两方面的知识,下面我们一一来介绍:
1. 本机IP
2. 域名对应的IP
DNS解析介绍
今天我们想知道两个IP是怎么来的,这里面就涉及了一个专业术语DNS解析
,DNS解析
就是指的域名到IP地址的变化过程。
我们先来理清一个事实:
在网络中,网络机器也就是电脑、服务器等各种网络设备,它们只认IP地址。
也就是在网络传输中,IP地址是数据发送和接受的出发点和目的点。
而我们在发送请求时用到的域名,类似于www.baidu.com这样的域名,在网络传输中会被先转化成机器认识的IP地址。
实验
这个是我们在Http请求的抓包过程中体现的两个IP地址:
你明显的看出,这两个IP地址一个叫Source
,一个叫Destination
,好了,我帮大家查过词典了,这两个英文一个是源地址
,一个是目的地
。
源地址
应该说的是我们本机的地址,那真的是这样吗?我们来验证一下,这个对应的到底是不是我们自己电脑的IP。
1. 探究自己电脑的IP地址和Source
的IP到底是不是一个
这里查看自己的IP地址,会用到ipconfig
命令,ipconfig
命令是windows系统查看自己电脑网络IP配置的一个命令。它会把我们电脑涉及的所有的网卡信息都罗列出来,也包括虚拟网卡、
虚拟的VPN通道信息。
好了,下面开始我们的验证!!!
打开CMD窗口,输入一下命令:
ipconfig
然后你会看到:
此处说明:里面返回的信息包含了你电脑所有的网卡信息,如果你用的是网线,就找到以太网适配器 以太网
。如果你连接的是无线,就找到无线局域网适配器 WLAN
。
此处你就发现,抓包工具里面对应的Source
里面的IP地址其实就是我们自己的IP地址,也就是说是我们本机电脑发出去的数据包,而没有经过别人的转发啥的。
1. 本机发送出去的数据包,对应的发送端的IP地址就是我们自己机器的IP地址!
2. 探究如何获取网址对应的IP地址
好了,到这里你应该也猜的到剩下的那个220.181.38.50
对应的就应该是www.baidu.com的IP地址。
OK, 那这个IP地址从哪里来的呢?存在自己电脑上的吗?要是存在自己电脑上的话,那是不是所有互联网对应的IP都得存一份?
废话不说,开始我们的实验!!!
打开CMD窗口,输入一下命令,这个命令是展示我们电脑缓存的所有的DNS信息:
ipconfig/displaydns
你会发现,里面有两个IP地址110.242.68.3
和110.242.68.4
。和我们上面演示的220.181.38.50
不太一样,这是怎么回事呢?
好了,这三个IP地址其实都是www.baidu.com对应的IP地址,我们通过其中的任何一个都可以访问到百度。
不信我们就试试,打开把其中的一个地址粘贴到地址框去,此处只演示一个,剩下的自己尝试下:
好了,细心的你一定发现了生存时间的细节,在ipconfig/displaydns
的返回结果里面,有个生存时间78。这个数字代表的是在我们电脑里面这条记录保存78秒。
不信的话,你在使用ipconfig/displaydns
你会发现,数字比78小,甚至里面的返回结果没有www.baidu.com对应的信息。
此处加个推测:
1. IP地址不是20.181.38.50,可能是由于到目前为止的时间,已经超过了DNS缓存的时间,也就是缓存20.181.38.50失效了。
2. 而新拿到的两个IP地址是在20.181.38.50失效之后,重新访问www.baidu.com时候,重新缓存起来的。
OK,上面只是我们的猜测,那到底是不是这样呢,我们来做个实验。用到的工具还是Wireshark,实验的思路如下:
1. 我们先清除我们本地的缓存。
2. 然后在访问百度,查看下我们的DNS信息。
为了保证我们电脑里面没有DNS缓存,我们先清除DNS缓存,执行以下命令:
ipconfig/flushdns
到了此时,我们的电脑上就没有www.baidu.com的DNS缓存了,我们就可以抓取DNS的获取过程了。
下面我们开始抓取DNS的获取过程!!!!!!!!
- 第一步打开Wireshark, 过滤框中输入dns,如下图:
- 打开CMD窗口,输入以下命令:
curl www.baidu.com
下图是Wireshak抓取的DNS解析的过程。
基于我们上面的讲解,你应该可以看的懂这张图了:
1. 我们IP为10.13.144.189.
2. 我们向IP为10.13.7.64的服务器发送了一个DNS请求。
3. 服务器给我返回了两个IP:`110.242.68.3`和`110.242.68.4`
到了此处,你应该明白了。
1. DNS在我们本地是有缓存的
2. DNS对应的IP是可以从DNS服务器获取的
然后我们在看下我们本地的DNS缓存,你会发现他们和抓包返回的结果一致:
那我们本地的缓存信息和远程的DNS服务器的信息是如何一致的呢?这个呢,其实很简单。
1. 我们知道本地的DNS缓存是有时间限制的。
2. 在我们本地存在DNS缓存时,不会请求远程的服务器。
3. 只有本地DNS缓存超出了时间限制,也就是本地没有了DNS缓存,才会去远程拉取,同时保存到本地缓存一份。
整合我们上篇博客的内容,整个curl www.baidu.com
的流程如下图:
知识点整合:
1. 我们在发送Http请求的时候,如果本地没有对应域名的缓存DNS信息,就会去请求DNS服务器,拿到域名对应的IP.
2. 如果本地有了缓存,就直接用本地的DNS信息。
3. 拿到域名对应的IP后,与IP对应的服务器建立连接。
4. 发送和接受请求。
5. 断开连接。
总结
- 本篇博客告诉你,如何获取自己的IP地址。
- 域名是如何变成IP的。
- 本地电脑是缓存DNS信息的,但是它们有时间限制。
- 如何查看DNS缓存和如何清除DNS缓存。
拓展
- 既然我们知道了如何获取DNS信息,那DNS具体的查找过程你知道吗?DNS返回信息里面对应的
www.a.shifen.com
是怎么回事呢? - DNS服务器到底是谁在维护?在哪里?
- 一个域名为啥对应了那么多的IP地址,这个是如何做到的呢?
- 我们在请求DNS信息的时候,DNS服务器的信息那里获取呢?
好了,本节博客就结束了,你学废了吗,我们会持续更新网络中的各种概念和各种实验,欢迎大家关注!!!下期更精彩!!!
域名是如何变成IP的相关推荐
- 引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应
引子 我想大家应该都很熟悉DNS了,这回在DNS前面加了一个D又变成了什么呢?这个D就是Dynamic(动态),也就是说,按照传统,一个域名所对应的IP地址应该是定死的,而使用了DDNS后,域名所对应 ...
- nginx 禁止IP访问服务器和非法域名绑定你的IP
如果你不想别人通过IP访问你的web server或用其它域名绑定你的IP.有什么解决方案呢? 如果你的web server是nginx 请参考下面的虚拟主机配置: server{ listen 80 ...
- 实现一个域名对应多个IP地址和DNS优缺点详解!
实现一个域名对应多个IP地址和DNS优缺点详解! 1.DNS定义: DNS(Domain Name System)是因特网的一项服务,它作为域名和IP地址相互映射的一个分布式数据库,能够使人更方便的访 ...
- nginx 防止恶意域名解析_配置nginx只允许域名访问,禁止ip访问【图文教程】
平凡也就两个字: 懒和惰;成功也就两个字: 苦和勤;优秀也就两个字: 你和我.跟着我从0学习JAVA.spring全家桶和linux运维等知识,带你从懵懂少年走向人生巅峰,迎娶白富美!每一篇文章都是心 ...
- 同一域名对应多个IP时,PHP获取远程网页内容的函数
同一域名对应多个IP时,PHP获取远程网页内容的函数 [文章作者:张宴 本文版本:v1.0 最后修改:2008.12.15 转载请注明原文链接:http://blog.zyan.cc/post/389 ...
- nginx php多域名配置文件,配置文件,nginx_nginx多站点配置,无法通过域名访问,使用ip访问会跳转到其中一个站点,配置文件,nginx - phpStudy...
nginx多站点配置,无法通过域名访问,使用ip访问会跳转到其中一个站点 在一台服务器设置了Nginx多站点,但是访问这些站点的域名均无法访问,错误如下图: 通过ip会跳转到其中一个站点,具体表现为: ...
- 查询服务器外网IP和根据域名查询外网IP
[size=medium] linux经常需要查询服务器的外网IP,或是通过域名来查询该服务器对应的外网IP 1.查询本地服务器外网IP curl ipinfo.io/ip 2.通过域名查询外网IP ...
- 计算机名和DNS域名的关系,域名、DNS、IP地址的对应关系
什么是域名?什么是IP地址? 域名(英语:Domain Name),简称域名.网域,是由一串用点分隔的名字组成的上某一台计算机或计算机组的名称,用于在数据传输时标识计算机的电子方位(有时也指地理位置) ...
- 虚拟主机的构建——基于域名、端口、IP
构建虚拟主机 1.虚拟主机介绍 企业常用的虚拟主机分为3种: (1)基于域名 (2)基于端口 (3)基于IP 虚拟web主机 在同一台物理服务器中运行多个web站点,其中每一个站点并不独立占用一台真正 ...
- 多活主备选择性DNS解析(一个域名对应多个IP)
多活主备选择性DNS 问题背景 知识背景 DNS解析存在多级缓存(此处仅列举到DNS服务器层:后续流程不涉及) DNS一对多域名的解析随机性 DNS 域名解析负载均衡缺点: 可能方案 方案一.dns解 ...
最新文章
- win10下安装linux mint,win10系统安装Mint Linux 18的详细步骤
- ant安装(for linux)
- PHP各种魔术方法测试
- Redis中7种集合类型应用场景
- 计算机系统基础:程序与运算
- 几个想法,有兴趣的可以深入下去
- 号称迄今为止最快,.NET6带来了什么?
- mysql批量条件字段_mysql批量更新多条记录的同一个字段为不同值的方法
- Python与机器视觉(x)图像差分-图像相减
- 数据库篇之[bsp_orders]数据表-BrnShop1.9升级至2.1升级说明(非官方版本)
- 对民办幼儿园管理的几点思考
- 常见路径规划算法介绍
- 4G标准LTE成争执焦点 中兴华为或以和解收场
- mysql ipv4转ipv6_从IPv4到IPv6过渡
- 在线文档编辑插件——KindEditor
- 魔百盒CM201-1、CM211-1朝歌ZG_支持UWE5621WiFi驱动_免拆卡刷固件包
- java生成二维码,全过程,不要积分
- 百度Ai实现网络图片文字识别--Java
- The Foundry NUKE 12 mac版(电影特效合成制作软件)
- 分布函数弱收敛和一致收敛
热门文章
- 单体架构与微服务架构(英文)
- 计算机扩容硬盘,扩容盘是什么 如何恢复真实容量【方法详解】
- python程序设计实训心得体会_20194220 实验四《Python程序设计》实验报告
- 计算机基础知识vf试题及答案,2016年计算机二级考试《VF》上机试题及答案(1)
- nfc加密卡pm3和pm5区别_【黑科技】NFC模拟门卡门禁
- Python实现 excel转Word 工具开发
- 【HikariCP】HikariCP连接时间设置和连接数设置
- 基于VC++实现的中国象棋-双人象棋游戏
- 《人月神话》阅读心得
- 搞一下SOA | 11 SOA 系统建模