DNS:getaddrinfo() 根据尾随点返回不同的答案

DNS:getaddrinfo() 根据尾随点返回不同的答案

这可能是一个新手问题,但请解释一下,如果我在域名后面添加尾随点,名称解析会发生什么变化?(hosts 文件为空,应该没问题)

>>> print socket.getaddrinfo('google.com',0)[0][4][0]
216.58.212.238
>>> print socket.getaddrinfo('google.com.',0)[0][4][0]
64.233.167.113

答案1

这是两件不同的事情,添加尾随点.会将主机名归类为完全限定域名(FQDN)。明确添加它可以防止附加搜索域。

即搜索域设置为example.com.主机名,例如google.com没有尾随点可能被解析为google.com.example.com.. (许多解析器会主动阻止这种情况,并将任何包含一个或多个点的主机名视为隐含的 FQDN,并将附加尾随的 . 而不是搜索域)。

但这可能不是您在 google.com 示例中发生的情况。

对同一记录的后续请求导致不同答案的原因是已定义了多个记录,这是一种称为轮询 DNS

相关内容