我想为同一个主机名提供两个 IP 地址。如文件
中所述:/etc/hosts
xx.x.x.x example # if system is connected to dhcp
y.y.yy.y example # if system is connected to VPN
那么,这可能吗?
答案1
在本例中,这实际上是不可能的。您的 hosts 文件本质上构成了系统将主机名映射到 IP 地址的能力的一部分。因此,当您的系统想要知道“示例”的 IP 地址时,它会得到一个 IP 地址作为回复。hosts 文件无法区分不同的“记录类型”以进行解析。因此,对于主机名到 IP 地址的映射,每个主机名只能获得一个 IP 地址(但可以有多个主机名可以解析为同一个IP地址,反之亦然。
根据您正在执行的操作,是否可以使用外部 DNS 服务(如 dyndns.org)将可在任一网络上运行的常量主机名映射到您的 IP 地址?
答案2
严格来说,上述答案是错误的。
在旧代码中,使用gethostbyname()
确实只会返回一个结果。
在较新的代码中,使用getaddrinfo()
将返回所有结果,并且/etc/hosts问题中的文件将按需要工作。