Laravel 的 `$request->ip()` 没有 return IP 地址的最后一位

Laravel's `$request->ip()` doesn't return the last digit of the IP address

我正在使用 Laravel 5、PHP 7 和 Homestead,但出于某种原因,当我尝试访问 $request->ip() 时,我返回了 192.168.10.1。但是在我的 /etc/hosts 文件中我有 192.168.10.10 homestead.test。然后当我 var_dump($request); 我得到以下

...
 'HTTP_HOST' => string 'homestead.test' (length=14)
 'REDIRECT_STATUS' => string '200' (length=3)
 'SERVER_NAME' => string 'homestead.test' (length=14)
 'SERVER_PORT' => string '80' (length=2)
 'SERVER_ADDR' => string '192.168.10.10' (length=13)
 ...
 'REMOTE_ADDR' => string '192.168.10.1' (length=12)

有没有人见过从 IP 地址中删除最后一个值的地方?

在您的情况下,$request->ip() 表示 REMOTE_ADDR,这是您的浏览器正在使用的 IP(192.168.10.1)。

SERVER_NAMESERVER_ADDRhomestead.test192.168.10.10,这是您的虚拟主机的名称和虚拟主机的 IP。

你的一台电脑的IP是192.168.10.1,你homestead的IP是192.168.10.10。因此,当您访问 PHP 程序时,您的浏览器正在使用 192.168.10.1 连接到 homestead 的 192.168.10.10