【问题标题】:Does IP address of a DNS changes over time?DNS 的 IP 地址会随时间变化吗?
【发布时间】:2015-04-11 01:18:14
【问题描述】:

我有一组域名及其 IP 地址。当我分别向域名和 IP 地址发送 http 请求时,我发现响应中存在差异。向域名发送 http 请求时响应的主机高于 IP 地址。所以,我想知道域名的IP地址是否会随着时间而改变。如果它改变了,那可能是什么原因。我将不胜感激。

【问题讨论】:

  • 我不确定您所说的“向域名发送 http 请求时响应的主机比 IP 地址更高”是什么意思。
  • 例如,如果我分别向 20 个域名和它们的 20 个 IP 地址发送 http 请求,那么如果我在向域名发送请求时收到 15 个 http 响应,在 IP 地址请求的情况下收到 10 个。
  • 当你发送一个HTTP请求时,无论是去到一个域还是一个IP,你都会得到一个HTTP响应,除非域解析到IP失败,或者套接字连接失败到一个 IP。因此,除非发生错误,否则您应该对 20 个请求获得 20 个响应。错误真的发生了吗?

标签: http dns ip httprequest ipv4


【解决方案1】:

我想知道域名的IP地址是否会超时更改

它们可能会随着时间而改变,而且很可能最终会改变。

如果它改变了,那可能是什么原因。

这真的取决于个别服务器。如果服务器具有静态 IP 地址,它们可能不会更改,但可以。如果服务器具有动态 IP 地址,它们很可能会发生变化。如果服务器被移动到新的建筑物/网络,IP 地址可能并且很可能会发生变化。

这就是 DNS 的全部意义 - 能够在那个时刻将给定的主机名解析为其当前的 IP 地址,而不管地址实际上是什么。当主机名向 DNS 注册时,主机名的 DNS 记录会在其 IP 地址更改时相应更新,并且这些更改会在公共 DNS 服务器中传播和缓存。这就是为什么有时当主机名更改其 IP 地址时,客户端系统可能需要一点时间(几分钟、几小时)才能检测到新的 IP 地址,具体取决于正在查询的 DNS 服务器以及 DNS 请求的格式。

当客户端想要通过主机名连接到服务器时,它会发送 DNS 请求以获取当前 IP 地址。请求通过 DNS 系统循环,直到 DNS 服务器确定它有合适的答案并用它当前知道的 IP 地址进行回复(可能会被缓存,因此 DNS 请求可能并不总是权威响应,除非客户端明确表示请求,在这种情况下,请求被路由到拥有主机名的 DNS 服务器),然后客户端根据需要连接到这些 IP 地址。

有时这些 IP 地址可能与客户端未连接到的网络有关。有时,IP 地址可能会被中间 DNS 服务器缓存,并且随着时间的推移会变得陈旧。这就是为什么最好尝试连接到 DNS 响应中报告的每个 IP 地址的原因。但许多套接字程序员不这样做,他们通常只是连接到报告的第一个 IP 地址。如果可以,尽量不要落入同样的陷阱。

【讨论】:

    猜你喜欢
    • 2019-11-09
    • 1970-01-01
    • 1970-01-01
    • 2022-06-20
    • 2017-08-25
    • 2021-08-25
    • 1970-01-01
    • 2016-09-11
    • 2014-05-08
    相关资源
    最近更新 更多