【问题标题】:Why does www.twitter.com return a different IP address sometimes with InetAddress/getHostAddress()?为什么 www.twitter.com 有时会使用 InetAddress/getHostAddress() 返回不同的 IP 地址?
【发布时间】:2015-10-08 10:15:12
【问题描述】:

为什么有时我运行这个 java 代码 www.twitter.com 返回不同的 IP 地址?

  InetAddress host = InetAddress.getByName("www.twitter.com");
  System.out.println("www.twitter.com" + " : " + host.getHostAddress());

其他网站大多返回相同的 IP 地址,即。 www.facebook.com 总是返回 179.60.193.3

Yahoo.com 例如总是返回 203.84.216.121

【问题讨论】:

  • 此外,当我使用该 IPadress 时,它不会将我定向到 twitter.com 实际网站(当我在浏览器中输入时)
  • 你得到了哪些值?
  • 199.59.149.198 , 199.59.150.47, 199.59.149.230 例如
  • 这可能不是你的代码,它是来自 dns 服务器的东西,但我不确定它到底是什么

标签: java facebook twitter ip


【解决方案1】:

因为www.twitter.com 被分配了多个 IPv4 地址。

一个主机名可以映射到多个 IP 地址。当您查找主机名时,您会得到哪一个取决于 DNS 中的许多配置细节。

不管怎样,一个 IP 地址也可以分配多个主机名。

【讨论】:

  • 有没有办法可以查看 twitter.com 分配了多少 IPv4 地址?
  • @PatrickLee man dig(如果您使用的是基于 Unix 的系统)应该会引导您朝着正确的方向前进。 Windows 有nslookup 我认为。
  • 您的结果也可能取决于您查询的 DNS 服务器。只需 Google dns servers,您就可以找到很多其他可以查询的 DNS 服务器。
【解决方案2】:

这很可能是由于 DNS 循环。基本上,名称“twitter.com”的 A 记录不止一个,您的客户动态地选择提供的记录之一并使用它。使用过的记录可以频繁切换。

【讨论】:

    猜你喜欢
    • 2015-07-08
    • 1970-01-01
    • 2012-01-03
    • 1970-01-01
    • 2019-11-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 2014-03-21
    相关资源
    最近更新 更多