$_server['REMOTE_ADDR'];
此代码用于获取用户的IP。如果我在本地主机上,它会提供 127.0.0.1
但我的 IP 不是这个,如果我转到实时网页,IP 地址是另一个。我是用户那为什么 IP 127.0.0.1
?
最佳答案
您已经在本地计算机上安装了网络服务器。
这是必需的,因为在开发时您需要测试您的开发,并且在执行此操作时,您需要模拟您的项目将在其上启动的服务器。
服务器需要为每个客户端的请求提供服务,因此要在本地机器上模拟它,我们需要将其分配给某个 IP 地址。
现在,为什么是 127.0.0.1?
@Jhon T 127 是子网掩码为 255.0.0.0 的 A 类网络中的最后一个网络号。 127.0.0.1 是子网中的第一个可分配地址。不能使用 127.0.0.0,因为那将是线号。但是对主机部分使用任何其他数字应该可以正常工作并恢复为使用 127.0.0.1。如果愿意,您可以自己尝试 ping 127.1.1.1。为什么他们等到最后一个网络号才实现呢?我不认为它被记录在案
为了更清晰
@Captain Pedantic 127.0.0.1 通常是分配给“环回”或仅限本地接口(interface)的 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 时,这意味着“监听每个可用的网络接口(interface)”。从服务器进程的角度来看,IP 地址为 127.0.0.1 的环回适配器看起来就像机器上的任何其他网络适配器,因此被告知监听 0.0.0.0 的服务器也将接受该接口(interface)上的连接。
引用
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?
关于php - 为什么本地主机上的 IP 地址是 127.0.0.1,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/24473261/