如何将域名解析为单个IP地址?

时间:2011-03-11 21:07:04

标签: .net tcp domain-name

我很惊讶地发现单个域名可以拥有多个IP地址。例如,以下是Dns.GetHostAddresses("www.google.com")的结果:

{System.Net.IPAddress[6]}
    [0]: {74.125.127.147}
    [1]: {74.125.127.99}
    [2]: {74.125.127.103}
    [3]: {74.125.127.104}
    [4]: {74.125.127.105}
    [5]: {74.125.127.106}

(YMMV;地址似乎定期更改)

这些不同的地址来自何处,以及如何选择要连接的IP地址?

4 个答案:

答案 0 :(得分:2)

除非有理由专门绑定到IP,否则在建立连接时应使用DNS解析。

至于“他们来自哪里”,这可以通过任何数量的基础设施决策来回答。这是DNS的强大功能,因为负载平衡,缓存,交付等系统可以从任意数量的源动态提供域(example.com),而您(客户端)不必担心该实现。

多个DNS可以是多个服务器,不同的数据中心,缓存网络等......具体取决于多种因素。

答案 1 :(得分:1)

最有可能使用某种RoundRobin。

您只能依赖域名,除非域名在您的控制之下。

答案 2 :(得分:0)

IP地址来自与查询的域名相关联的DNS服务器,例如www.google.com。这将是Web浏览器跟随以获取要连接的服务器IP地址的相同过程。

至于连接到哪个IP地址,我想它们都是多余的,你应该只是连接到第一个,但这只是猜测,我真的不知道。

答案 3 :(得分:0)

你可以做几件事:

  1. 使用System.Net.IPAddress [0] 蝙蝠。
  2. 你可以ping所有6和     看哪一个有最好的回应     时间,缓存该值并尝试     以后再用。