【发布时间】:2014-08-19 19:53:59
【问题描述】:
$_server['REMOTE_ADDR'];
此代码用于获取用户的 IP。如果我在本地主机上,它会给出127.0.0.1,但我的 IP 不是这个,如果我去实时网页,IP 地址是另一个。我是用户那为什么IP127.0.0.1?
【问题讨论】:
标签: php mysql localhost ip-address
$_server['REMOTE_ADDR'];
此代码用于获取用户的 IP。如果我在本地主机上,它会给出127.0.0.1,但我的 IP 不是这个,如果我去实时网页,IP 地址是另一个。我是用户那为什么IP127.0.0.1?
【问题讨论】:
标签: php mysql localhost ip-address
您已在本地计算机上安装了 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 通常是分配给“环回”或仅限本地接口的 IP 地址。这是一个“假”网络适配器,只能在同一主机内通信。当您希望支持网络的应用程序仅为同一主机上的客户端提供服务时,通常会使用它。在 127.0.0.1 上侦听连接的进程将只接收该套接字上的本地连接。
"localhost" 通常是 127.0.0.1 IP 地址的主机名。它通常设置在 /etc/hosts(或在 %WINDIR% 下某处名为“hosts”的 Windows 等效项)中。您可以像使用任何其他主机名一样使用它 - 尝试“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?
【讨论】:
你说:
如果我在本地主机上,它会给出 12.0.0.1
这是正确的,因为这是 localhost 的地址。如果您想知道为什么它有该地址,请参阅 here。
来自本地主机上的wikipedia entry:
在计算机网络中,localhost 表示这台计算机。它是计算机软件和用户可以用来通过其环回网络接口访问计算机自己的网络服务的主机名。使用环回接口绕过本地网络接口硬件。
希望对你有帮助。
【讨论】: