我很惊讶地发现单个域名可以拥有多个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地址?
答案 0 :(得分:2)
除非有理由专门绑定到IP,否则在建立连接时应使用DNS解析。
至于“他们来自哪里”,这可以通过任何数量的基础设施决策来回答。这是DNS的强大功能,因为负载平衡,缓存,交付等系统可以从任意数量的源动态提供域(example.com),而您(客户端)不必担心该实现。
多个DNS可以是多个服务器,不同的数据中心,缓存网络等......具体取决于多种因素。
答案 1 :(得分:1)
最有可能使用某种RoundRobin。
您只能依赖域名,除非域名在您的控制之下。
答案 2 :(得分:0)
IP地址来自与查询的域名相关联的DNS服务器,例如www.google.com。这将是Web浏览器跟随以获取要连接的服务器IP地址的相同过程。
至于连接到哪个IP地址,我想它们都是多余的,你应该只是连接到第一个,但这只是猜测,我真的不知道。
答案 3 :(得分:0)
你可以做几件事: