为什么在localhost上IP地址是127.0.0.1

时间:2014-06-29 04:52:13

标签: php mysql localhost ip-address

$_server['REMOTE_ADDR'];

此代码用于获取用户的IP。如果我在localhost上它会给127.0.0.1,但我的IP不是这个,如果我去实况网页,IP地址是另一个。我是用户,那么为什么IP 127.0.0.1

2 个答案:

答案 0 :(得分:2)

你说:

  

如果我在localhost上,它会给出12.0.0.1

这是正确的,因为这是localhost的地址。如果您想知道它为何具有该地址,请参阅here

来自localhost上的wikipedia entry

  

在计算机网络中,localhost表示此计算机。它是计算机软件和用户可以通过其环回网络接口访问计算机自己的网络服务的主机名。使用环回接口会绕过本地网络接口硬件。

我希望有所帮助。

答案 1 :(得分:1)

您已在本地计算机上安装了Web服务器。

这是必需的,因为在开发过程中,您需要测试开发和开发。在执行此操作时,您需要模拟项目将在其上启动的服务器。

服务器需要服务于每个客户端的请求。所以要在本地机器上模拟它,我们需要将它分配给某个IP地址。

现在,为什么选择127.0.0.1

@Jhon T 127是A类网络中的最后一个网络号,子网掩码为255.0.0.0。 127.0.0.1是子网中的第一个可分配地址。无法使用127.0.0.0,因为这将是线号。但是使用主机部分的任何其他数字应该可以正常工作并恢复使用127.0.0.1。如果您愿意,可以通过ping 127.1.1.1自行尝试。为什么他们等到最后一个网络号才能实现呢?我不认为它有记录

更多清晰度

@Captain Pedantic 127.0.0.1通常是分配给" loopback"的IP地址。或仅限本地的界面。这是一个"假的"只能在同一主机内通信的网络适配器。当您希望具有网络功能的应用程序仅为同一主机上的客户端提供服务时,通常会使用它。正在侦听127.0.0.1连接的进程只接收该套接字上的本地连接。

"本地主机"通常是127.0.0.1 IP地址的主机名。它通常设置在/ etc / hosts(或Windows等效命名为" hosts"某处%WINDIR%下)。您可以像使用任何其他主机名一样使用它 - 尝试" ping localhost"看看它如何解析为127.0.0.1。

0.0.0.0有几个不同的含义,但在这种情况下,当告知服务器监听0.0.0.0时,这意味着"监听每个可用的网络接口"。从服务器进程的角度来看,IP地址为127.0.0.1的环回适配器看起来就像机器上的任何其他网络适配器一样,因此被告知监听0.0.0.0的服务器也将接受该接口上的连接。

参考

https://superuser.com/questions/31824/why-is-localhost-ip-127-0-0-1

What is the difference between 0.0.0.0, 127.0.0.1 and localhost?