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.
, (Многие распознаватели активно предотвращают это и рассматривают любое имя хоста, которое содержит одну или несколько точек, как подразумеваемое полное доменное имя и будут добавлять конечный символ., А не поисковый домен).
Это, вероятно, не то, что происходит в ваших примерах google.com.
Причина, по которой последующие запросы на одну и ту же запись приводят к разным ответам, состоит в том, что было определено несколько записей, метод балансировки нагрузки, называемый циклическим DNS.