使用和不使用 http:// ping 之间的区别

Sar*_*ngh 47 ping http

我正在尝试 ping 我的网站http://www.example.com/,但它解析为未知 IP 地址并超时。

PING http://www.example.com/ (198.105.254.228): 56 data bytes 
Request timeout for icmp_seq 0 
Request timeout for icmp_seq 1 
Request timeout for icmp_seq 2
Run Code Online (Sandbox Code Playgroud)

但是当我pingexample.com它时

我在这里错过了什么?

Dav*_*ill 107

我正在尝试 ping 我的网站http://www.example.com/并且它解析为未知的 IP 地址并超时。

PING http://www.example.com/ (198.105.254.228): 56 data bytes
Request timeout for icmp_seq 0
Run Code Online (Sandbox Code Playgroud)

ping 的参数是主机名(或 IP 地址)。

所以以下都将起作用:

ping example.com
ping www.example.com
ping 127.0.0.1
Run Code Online (Sandbox Code Playgroud)

另一方面,

ping http://www.example.com/
Run Code Online (Sandbox Code Playgroud)

将无法工作,因为http://www.example.com/是 HTTP统一资源定位器 (URL),不是有效的主机名(尽管它的一部分是主机名)。

HTTP URL 由 4 部分组成:

  • 方案 — 始终存在
  • 主机名 — 始终存在
  • Path 或 Stem — 始终存在,但有时为空
  • 参数 - 可选

Ping 通常不会将 URL 识别为有效的目标主机名。

注意事项

  • 并非所有 URL 都具有上述格式。

  • 一个完整的 URL 由一个命名方案说明符和一个字符串组成,该字符串的格式是命名方案的函数。

  • URL 的格式在 IETF 规范Uniform Resource Locators (URL) 中定义


DNS劫持

如果 DNS 服务器(将主机名解析为 IP 地址)配置为返回有效的 IP 地址,即使提供了无效的主机名,也会发生上述情况的例外情况。

如果 ISP 正在劫持您的 DNS 查询,就会发生这种情况。

从答案中为什么 ping 会解析为我键入的任何随机主机名的 IP 198.105.254.228?作者:迈克尔汉普顿

他们试图通过将不存在的域的请求重定向到提供搜索结果和广告的白标服务来“提供帮助”,除了您之外,每个人都可以从中获得收益。

幸运的是,他们确实有一个首选项页面,您可以在其中关闭它。


Hun*_*lan 33

当您使用非 IP 地址的字符串运行 ping 命令时,它首先需要解析您尝试 ping 的主机的 IP 地址。

当你运行时:

$ ping example.com

DNS 服务器返回托管网站的服务器的 IP 地址。

但是,当您为协议和路径添加前缀以创建标准的 http URL 时,该 URL 将全部发送到 DNS 服务器进行解析。

因此,DNS 服务器不是查找记录,example.com而是查找http://example.com/不是有效主机名的记录。

许多 DNS 服务器将一无所获。在这种情况下,ping 命令只会出错,并显示 DNS 解析错误。

但是您的 DNS 服务器返回 IP 地址123.456.789.000。该地址似乎是时代华纳有线电视公司的一项建议服务,旨在帮助在浏览器中输入错误网址的用户。

但是 ping 命令从字面上理解这一点,并认为主机名http://example.com/(不是有效的主机名)解析为 address 123.456.789.000

之后ping 命令超时的原因123.456.789.000是不响应ICMP 请求。

  • 值得指出的是,实际的域/IP 被社区机器人编辑掉了。“123.456.789.000”最初是当您尝试解析不存在的主机名时 TWC 的 DNS 抛出的 IP 地址。 (5认同)

小智 21

http:// 代表超文本传输​​协议,用于访问网页的协议。Ping 服务器不使用 HTTP,而是由 ICMP(互联网控制消息协议)消息组成,因此 http:// 在这种情况下没有意义。