gpt4 book ai didi

c# - Dns.GetHostEntry 返回多个 IP 地址

转载 作者:太空狗 更新时间:2023-10-29 19:54:33 34 4
gpt4 key购买 nike

这个问题可能突出了我对网络原理缺乏理解,而不是编程问题。

我正在使用以下命令查找主机名

Dns.GetHostEntry

这会返回一个 IPHostEntry 给我,它有一个 AddressList 属性,它是一个 IPAddress 数组。

我一直认为主机名和 IP 之间存在一对一的映射,但我发现在某些情况下我会为同一主机返回多个 IP 地址。

这对我来说是一个惊喜。

域名解析哪部分不明白?

最佳答案

物理网络接口(interface)、DNS 名称和 IP 地址之间的映射实际上是任意的。但是,您应该区分网络接口(interface)(通常是以太网适配器、Wifi 适配器、蓝牙网络设备等)和事物的 DNS 端,它只处理名称和 IP 地址(而不是物理接口(interface))。

以下是您可以混合搭配的一些事实:

  • 一个网卡可以有一个或多个IP地址。
  • 单个 DNS 名称可以解析为 1 个或多个 IP 地址。
  • 单个 IP 地址可以(而且通常会)识别一台机器
  • 多个 DNS 名称可以映射到一个 IP 地址

考虑托管服务提供商:他们将有许多 DNS 名称指向同一个 - 共享 - 服务器。出于可靠性原因,该服务器可能配备多个网卡,每个网卡都有多个 IP 地址。

对于 PC,如果您通过主机名查询,您通常会获得多个 IP 地址,因为现在您通常至少有两个(wifi 和以太网)适配器及其各自的(大多数是单个)IP 地址。然而,在负载平衡场景中,可能会发生各种巧妙的映射和重定向(虚拟 IP 地址等)。

DNS 和 IP 协议(protocol)都非常灵活,但这当然并不一定能让它们更容易理解。

关于c# - Dns.GetHostEntry 返回多个 IP 地址,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/995808/

34 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com