如果多个站点被分配到同一个 IP,nslookup 命令会返回什么结果

如果多个站点被分配到同一个 IP,nslookup 命令会返回什么结果

我在一本书中读到,nslookup命令用于从域名查找 IP 地址,反之亦然。域名只是给的,names因为IP Addresses它比名称更容易记住数字。

当我在浏览器中输入域名时,DNS服务器会解析IP地址来自域名。但是,由于可能有多个网站具有相同的 IP 地址,那么如果我在浏览器中输入的是 IP 地址而不是域名,会发生什么情况?DNS 服务器如何知道我要访问哪个网站?

我列出了五个网站。

www.delhians.com

www.finitecolors.com

www.garbagevalue.com

www.hackchefs.com

www.studentdunya.com

它们都有相同的 IP 地址

http://166.62.28.108/

当我输入nslookupcmd 时,有时它会返回德里人网, 有时finitecolors.com, 有时垃圾价值网等等。

那么 DNS 如何决定在 cmd 和浏览器中返回哪个域名?

答案1

But as there may be multiple sites that may have the same IP address, so what happened If I type the IP address in the browser instead of the domain name? How does the DNS server know on which website I want to go?

但事实并非如此。

当您使用 nslookup 查找 PTR 记录时,它会返回该 IP 地址的 IP 地址到名称映射,该映射由网络块所有者维护,而不一定(或可能)由网络托管公司维护,甚至可能不存在。

最好的情况是您将获得与该 IP 地址绑定的默认网站。

答案2

您可能需要查看虚拟主机Host具体来说,基于名称的。简而言之,Web 服务器可以通过查看HTTP 标头来确定您正在请求哪个网站。

当你通过 IP 请求其中任何一个网站时,你都会得到一个默认页面,而不会得到任何一个网站的响应。这是因为 Web 服务器不知道你想访问哪个网站。

答案3

不同的 Web 服务器(IIS/nginx)有不同的方式托管多个 Web 应用,但一个常见的逻辑是,你可以在同一个服务器上托管多个网站(nginx 中的服务器块)。IP:80HTTP 绑定(或 HTTPS 绑定 *IP:443)。

当 HTTP 请求到达时,Web 服务器将检查其 Host 标头,以决定应将此请求分派到哪个网站(或服务器块)。因此,在您的情况下,www.delhians.comwww.finitecolors.com将分开托管并接收不同的流量。

因此,如果 URL 中仅使用 IP 地址,则主机名将是 IP 地址,并且它依赖于 Web 服务器配置来决定如何分派请求。通常,您不会为 IP 地址配置站点(服务器块),但 IIS 和 nginx 都允许使用默认站点(服务器块)(catch-all 站点)来处理此类问题。

HTTPS 解释起来更复杂,因为它需要 SNI 设置将证书映射到不同的主机名。

更重要的是,DNS仅由浏览器用来确定应该将HTTP请求发送到哪个IP地址,因此当http://166.62.28.108/如果地址栏中存在,浏览器将不会执行 DNS 查询。

相关内容