当浏览包含 0.0.0.0 的 URL 时,如何将 0.0.0.0 解析为 localhost?

当浏览包含 0.0.0.0 的 URL 时,如何将 0.0.0.0 解析为 localhost?

在 Windows 上进行一些节点开发。节点程序喜欢剔除看起来像这样的 URL http://0.0.0.0:8080。在 Linux 中(如果我没记错的话),将该 URL 粘贴到浏览器中将会成功。但在 Windows 中,它会出现 404。我想我只需添加:

0.0.0.0 localhost

添加到我的hosts文件中,但似乎不起作用。例如,我有一个在 上运行的调试器http://localhost:8080/debug?port=5858。工作正常。但是当我将上述行添加到我的 hosts 文件并尝试访问时,http://0.0.0.0:8080/debug?port=5858我得到:

Error 108 (net::ERR_ADDRESS_INVALID): Unknown error.

Node-inspector 就是一个很好的例子:

$ node-inspector                                                      
   info  - socket.io started                                          
visit http://0.0.0.0:8080/debug?port=5858 to start debugging  

我是否只需要在复制/粘贴时手动编辑该 IP 以使其等于 localhost?或者这是 Linux 和 Windows 之间的奇怪差异?

在 Windows 7 中浏览 URL 时如何实现0.0.0.0等效localhost?Chrome 是我的“默认”浏览器。

答案1

因此,这里发生的事情是,节点绑定到0.0.0.0- 网络语言中表示“所有接口”。这包括本地主机、您拥有的任何实际接口以及您拥有的任何虚拟接口。它本身通常不指向单个接口。(从技术上讲,它指向“此网络上的此主机”,但这充其量是模棱两可的,因为“此网络”没有定义。因此0.0.0.0通常被理解为指向表示本地计算机在每一个网络)

复制/粘贴时需要手动编辑该 IP 吗?是的。如果 Linux 或 Linux 上的特定浏览器恰好默默地将其更正为127.0.0.1...太棒了。但正如您所发现的,这不是普遍现象。

答案2

当浏览器扩展检测到页面位于 0.0.0.0 URL 上时,您可以使用浏览器扩展来重定向页面。我使用了 Chrome 的重定向器扩展,并进行了以下设置:

Description: 0.0.0.0 to localhost
Example URL: http://0.0.0.0:4000/webpack-dev-server/
Include pattern: ([a-zA-Z]*)://0.0.0.0:(\d*)/(.*)
Redirect to: $1://localhost:$2/$3
Pattern type: Regular Expression
Example result: http://localhost:4000/webpack-dev-server/

相关内容