如果我输入网站的IP而不是字符串形式的IP,我的本地DNS服务器是否理解这一点,是否可以绕过DNS进程?[重复]


12

这纯粹是出于好奇。但是,如果我输入网站的IP,请求是否仍会继续进行正向查找过程?如果不是,在什么时候和通过哪个步骤意识到这是IP地址而不是主机名字符串?

另外,这将如何记录在我的主机文件中?如果它通过整个查找过程,主机文件是否将包含字符串主机名以及IP并在本地填充?


1
域名系统,这就是将网址(google.com)转换为IP地址的功能,因此,如果您使用IP地址,则无需绕过DNS系统就无需进行名称查找。 en.wikipedia.org/wiki/Domain_Name_System
摩押

下面的答案是正确的,浏览器足够聪明,不会对IP地址进行前向查找。对IP地址进行前向查找从来都不是一个好主意,DNS服务器可以通过3种方式对其作出反应:1)大多数DNS服务器将简单地返回相同的IP地址。2)其他DNS服务器无法将“ DNS名称”解析为IP,并会告诉您。3)一些(免费)DNS服务器无法解析“ DNS名称”,并为您提供IP,该IP会将您重定向到他们自己的搜索页面(通常是广告)。
user1793963 '16

1
如果Web服务器托管多个站点,则必须使用域名。它具有单个IP,并且没有域名,因此无法理解您想要的站点。如果只有一个网站,那么它将以相同的方式使用IP。
i486

1
请注意,主机名不仅会发送到DNS进行翻译,还会发送到Web服务器本身。这意味着为多个网站提供服务的Web服务器无法知道您想要哪个站点。这当然是一个IPv4问题。使用IPv6,每个网站都可以拥有自己的IP地址。
MSalters '16

1
现在,下一个问题是:您的浏览器如何知道这2001:feed:face:dead::beef:8080是具有指定端口的IPv6地址,而不仅仅是格式错误的URL ...;)
Mark Henderson

Answers:


15

如果使用IP地址,则操作系统将立即知道它是IP地址,并且不会进行正向查找。

当您执行HTTP请求时,第一步是获取目标的IP地址,以便浏览器可以与服务器通信。为了与服务器通信,所有事情都通过IP进行,从IP地址到IP地址,因此通信不需要服务器的名称。但是,它在HTTP标头中作为Host:标头传递,以让Web服务器知道您要访问哪个网站(如果它托管多个站点)。

如果通过IP地址访问,则不会发生这种情况,并显示默认站点。

您的hosts文件是静态文件,除非您直接对其进行编辑(或使用脚本或应用程序对其进行修改),否则它不会通过任何操作进行更改。


2
另外,值得一提的是,如果您在诸如Chrome之类的浏览器中输入IP地址,它可能会在仅加载网站之前进行Google搜索。
sventechie '16

1
请注意,构成页面的各个对象的内部链接可能是由FQDN完成的,因此,虽然根请求将在没有DNS查找的情况下运行,但是几乎可以肯定,每个图像,样式表,脚本文件等都将由DNS解析。请求时,您的浏览器企图使根页面和下载所有的子资源..
弗兰克·托马斯

2
@FrankThomas在大多数情况下,如果资产位于同一服务器上,则资产将通过相对URL进行引用,因此将通过与原始请求相同的方法(通过IP)进行访问。例外是在标头中使用base_href,因此规定了应使用相对URL的主机。如果使用了FQDN,则可以,游戏结束。
保罗

In the case of accessing by IP address, this does not happen, and the default site is presented.您很可能会看到错误页面。
User112638726's

@sventechie真的吗?知道为什么会这么做吗?就像,那有什么价值?
Athoxx '16

3

正如其他人所写的那样,通过使用IP地址,您实际上是在跳过DNS,该DNS允许例如在没有主机名的情况下访问开发站点。

在开发站点中,再次将IP-模拟主机名添加到/ etc / hosts中非常普遍。与直接使用IP地址不同,这将是:a)仍然跳过DNS b)使浏览器将Host请求标头添加到HTTP请求中,例如允许本地服务器上的虚拟主机。


值得注意的是,如果由于某种原因而更新了IP地址,则HOSTS文件不会随之更新,这可能导致意外行为,并且站点似乎不再工作。查看主机文件是人们对问题进行故障排除的最后一件事,并且可能会被完全忽略。
LPChip '16

@LPChip展览会,但请注意,我已经多次强调了这更像是开发人员-本地实践。
chx
By using our site, you acknowledge that you have read and understand our Cookie Policy and Privacy Policy.
Licensed under cc by-sa 3.0 with attribution required.