Spr*_*ner 4 networking dns google-chrome ip
我想知道一个网站的IP地址。一种方法是ping网站。例如,如果我想知道网站的IP地址,google.com那么我可以在命令提示符下ping。
Pinging google.com [74.125.236.195] with 32 bytes of data:
Reply from 74.125.236.195: bytes=32 time=36ms TTL=49
Reply from 74.125.236.195: bytes=32 time=35ms TTL=49
Reply from 74.125.236.195: bytes=32 time=64ms TTL=49
Reply from 74.125.236.195: bytes=32 time=47ms TTL=49
Run Code Online (Sandbox Code Playgroud)
所以这里74.125.236.195是google的IP地址。但是假设我想知道IP地址,superuser.com如果我尝试使用相同的方式,那么我得到198.252.206.16 IP地址。但是如果我把这个IP地址放在浏览器url中,那么我的浏览器不会带我去 superuser.com。
谁能告诉我如何获取IP地址?
Pau*_*aul 12
您的初始假设是所有网站都可以通过其 IP 地址直接访问。不是这种情况。
在许多情况下(我敢于在大多数情况下),以 IP 地址显示的网站取决于您请求的网站名称。即,如果您请求 superuser.com,您将首先将其解析为 IP 地址,然后向特定网页的 IP 地址发出请求。它看起来像这样:
GET / HTTP/1.1
Host: superuser.com:80
Run Code Online (Sandbox Code Playgroud)
第一部分说“获取网站的第一页”,第二部分说“对于网站 superuser.com”
这就是为什么单个网络服务器可以使用单个 IP 地址托管多个网站的原因。在 Stack Exchange 站点的情况下,它们中的任何一个或所有站点都可以在他们的每台服务器上,您将获得所需的服务器。如果你只是输入一个 IP 地址,你将不会得到其中的任何一个,因为你没有告诉网络服务器你在访问众多网站中的哪一个。在这些情况下,它可能定义了一个“默认”网站,或者只是返回一个错误。
如果您正在尝试解决 DNS 提供商的问题,那么您可以选择修改您的hosts文件,以便您自己解析地址,而不是让外部方为您解决。
例如,如果您编辑
/etc/hosts (linux)
c:\windows\system32\drivers\etc\hosts (windows)
Run Code Online (Sandbox Code Playgroud)
你可以输入
74.125.236.195 superuser.com
Run Code Online (Sandbox Code Playgroud)
这样,如果您在浏览器中键入 superuser.com,它将查看主机文件,并解析 IP 地址,但仍将网站名称传递给它所连接的服务器。
小智 5
获取网站的IP地址。最好的方法是使用nslookup命令。例如:
nslookup superuser.com 8.8.8.8
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non-authoritative answer:
Name: superuser.com
Address: 198.252.206.16
Run Code Online (Sandbox Code Playgroud)
如果您想知道为什么不能直接从 IP 地址(198.252.206.16)访问超级用户,那是因为 Web 服务器的设置。
在这里,超级用户的站点不允许用户通过 IP 地址访问。可能是因为 IP 地址绑定到其他网站(比如 stackoverflow.com)。
如果您使用“IP 反向查找”工具,您可以找到它的绑定站点。
再查找一次就证明我是对的:
nslookup stackoverflow.com 8.8.8.8
Server: google-public-dns-a.google.com
Address: 8.8.8.8
Non-authoritative answer:
Name: stackoverflow.com
Address: 198.252.206.16
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
23619 次 |
| 最近记录: |