我想知道一个网站的 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
这74.125.236.195
是 google 的 IP 地址。但是假设我想知道的 IP 地址superuser.com
,如果我尝试使用相同的方式,那么我会得到 198.252.206.16 IP 地址。但如果我将此 IP 地址放在浏览器网址中,那么我的浏览器就不会带我到 superuser.com。
谁能告诉我如何获取 IP 地址?
答案1
你一开始的假设是所有网站都可以通过其 IP 地址直接访问。但事实并非如此。
在许多情况下(我敢说大多数情况下),IP 地址显示的网站取决于您请求的网站名称。例如,如果您请求 superuser.com,您将首先将其解析为 IP 地址,然后向该 IP 地址发出特定网页的请求。它看起来像这样:
GET / HTTP/1.1
Host: superuser.com:80
第一部分是“获取网站首页”,第二部分是“获取网站 superuser.com”
这就是为什么单个 Web 服务器可以使用单个 IP 地址托管多个网站的原因。对于 Stack Exchange 网站,其中任何或所有网站都可以位于其每个服务器上,您将获得您要求的网站。如果您只输入 IP 地址,您将无法获得任何网站,因为您没有告诉 Web 服务器您想要访问的众多网站中的哪一个。在这些情况下,它可能定义了一个“默认”网站,或者只是返回错误。
如果您尝试解决 DNS 提供商的问题,那么您可以选择修改文件,hosts
以便自己解析地址,而不是让外部人员为您解析。
例如,如果你编辑
/etc/hosts (linux)
c:\windows\system32\drivers\etc\hosts (windows)
您可以输入
74.125.236.195 superuser.com
这样,如果您在浏览器中输入 superuser.com,它将查找 hosts 文件并解析 IP 地址,但仍将网站名称传递到它连接到的服务器。
答案2
要获取某个网站的 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
如果您想知道为什么无法直接从 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
答案3
Firefox 有一个不错的插件,可以显示你访问的任何网站的 OP 地址,你可以从这里
答案4
Firefox 的 Flagfox 插件可为您提供当前网站的 IP 地址,以及有关该网站的大量其他信息(包括服务器位置的地理位置图)。如果需要,可以通过插件下拉菜单中的菜单选择将 IP 地址复制到剪贴板。