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

可能是一个noob问题,但请解释一下,如果我将追踪点添加到域名中,名称parsing中有什么更改? (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 

两个不同的东西,添加一个尾随点 将主机名分类为完全限定的域名 (FQDN)。 显式添加它可以防止search域可能被追加。

即search域设置为example.com.google.com这样的主机名,如果没有结尾的话, 可能会被parsing为google.com.example.com. 。 (许多parsing器主动地阻止和处理任何包含一个或多个点的主机名作为隐含的FQDN,并将追加尾随而不是search域)。

这可能不是你的google.com的例子发生了什么。

之后对相同logging的请求导致不同答案的原因是已经定义了多个logging,称为循环法( round-robin)DNS的负载平衡技术。