来自 nslookup 的 IP 地址有时不起作用,例如与维基百科

IP address from nslookup sometimes doesn't work, e.g. with wikipedia

据我了解,nslookup [domain_name] 会给你一个域名的IP地址。当我 运行 nslookup wikipedia.org 时,我得到

    Server:     138.23.146.213
    Address:    138.23.146.213#53

    Non-authoritative answer:
    Name:   wikipedia.org
    Address: 198.35.26.96

因此,如果我在网络浏览器中输入 198.35.26.96,我应该会到达 wikipedia.org。这适用于某些网站,例如 google.com 和 facebook.com,以及 mozilla.org。但对于其他网站,如 wikipedia.org、craiglist.org 和 wordpress.org.

,它会出错

有人知道为什么吗?

IP 地址标识服务器,而不是网站。同一台服务器上可能托管了多个网站。

当您在浏览器地址栏中输入域名(如wikipedia.org)时,浏览器首先解析该域名得到IP地址(即是 198.35.26.96)。然后它构造一个 HTTP 请求,其参数名为 Host,值为 wikipedia.org,并将其发送到地址 198.35.26.96.

服务器收到响应,读取Host参数,知道用户正在寻找哪个网站。所以浏览器本质上需要服务器的IP地址和网站的域名才能打开。

在某些网络服务器中,可能会定义一个 "default website",即如果 Host 参数不存在或其值为 IP 地址,则服务器将服务于默认网站给用户。 google.comfacebook.com 就是这种情况。如果未设置默认网站(例如 wikipedia.org),服务器将简单地回复一个错误,指出找不到域。