为什么 getHostByName() return 的结果与 ping 不同?

Why does getHostByName() return a different result than ping?

当我从我的计算机上 ping 我的域名时,我得到的 IP 与我 运行 我的主机上执行

的脚本不同
echo getHostByName(getHostName());

这是为什么?

服务器的主机名可能与指向该服务器的 DNS 记录不同。这个很容易看出来:多个域可以指向一个服务器,但是服务器本身只能有一个名字。

很可能在服务器上配置的主机名(因此由 gethostname 返回)与您正在 ping 的主机名不同。

另一种可能性是内部 DNS 解析器 returns 内部主机的 IP 地址与外部 DNS 服务器不同。这称为水平分割 DNS。