Python网络编程 4.3 DNS协议

本文详细介绍了DNS解析的过程,从本机到本地DNS服务器,再到顶级域名服务器,层层递进。通过示例解析'www.python.org',揭示了DNS服务器如何查找并返回IP地址。此外,还讨论了Python中的DNS查询方法,特别是使用dnspython3库进行查询的操作,并解释了邮箱域名解析的规则。
摘要由CSDN通过智能技术生成

DNS协议
目的:解析主机名,返回IP地址
标准:RFC1034、RFC1035
传输层协议:UDP/IP和TCP/IP
端口号:53
Python库:第三方,如dnspython3



域名系统(Domain Name System)是成千上万互联网主机相互协作,对主机名与IP地址映射关系查询做出响应的一种机制。通过这种机制,我们在访问服务器时不需要记住其复杂的IP地址,而是通过简单好记的主机名来访问。
域名解析的过程:
  1. 如果网络浏览器要解析某一地址,那么浏览器就会运行类似于getaddrinfo()的调用,请求操作系统对域名进行解析。
  2. 首先,即使不查询域名服务,计算机自己也知道一些主机名对应的IP地址,因此当调用getaddrinfo()时,操作系统做的第一件事是,先从DNS服务器之外的其他一个或多个地方查询。Ubuntu系统下,操作系统会先检查/etc/hosts文件中记录的相关映射信息。Windows系统中也有类似的配置文件以供查询之用,比如localhost与127.0.0.1的映射关系就在该配置文件中。配置文件中还缓存了短期内曾经访问过的域名,并且会实时维护。
  3. 如果操作系统在本机的本地缓存中并没有查询到该主机名对应的IP
评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值