如何使用Laravel获取服务器IP

如何使用Laravel获取服务器IP,laravel,Laravel,使用Laravel,我可以通过request()->IP()获取客户端IP 是否有Laravel内置方式获取服务器IP?或者它是“不可能的”(与服务器地址的可靠性问题相同)您可以使用请求对象: request()->server('SERVER_ADDR'); 或者您可以使用标准PHP方式: $_SERVER['SERVER_ADDR']; Request::server('server\u ADDR'):) URL引用:如果您使用的是IIS,则只能使用 $\u服务器['LOCAL\u

使用Laravel,我可以通过
request()->IP()
获取客户端IP


是否有Laravel内置方式获取服务器IP?或者它是“不可能的”(与服务器地址的可靠性问题相同)

您可以使用请求对象:

request()->server('SERVER_ADDR');
或者您可以使用标准PHP方式:

$_SERVER['SERVER_ADDR'];
Request::server('server\u ADDR')
:)


URL引用:

如果您使用的是IIS,则只能使用

$\u服务器['LOCAL\u ADDR']

如果是LINUX,请使用:

$\u服务器['SERVER\u ADDR']


您可以在服务器上使用这种方式

$_SERVER['SERVER_ADDR'];
但是您不能在本地访问
服务器地址
索引。它将通过
未定义的索引:SERVER\u ADDR
错误执行。就我而言,我面临着这个错误

更好的解决方案是使用.env文件中的变量,该变量将在本地和服务器上工作

.env
文件中定义了如下变量。你可以给任何你想要的名字

SERVER_ADDR = 127.0.0.1
注意:请注意
SERVER\u ADDR
值应为
127.0.0.1
localhost
以获取服务器地址值

现在,您可以按如下方式访问此变量:

env('SERVER_ADDR');

这也为您提供了IP

request()->getHost();

谢谢我不需要客户端IP,但服务器IP可能是@patricus的副本,谢谢。我的问题是关于拉威尔的内置方式。出于这个原因,我没有给它添加
php
。这就是为什么我认为它不是复制品。问题是laravel是在PHP之上构建的。如果PHP中没有可靠的方法,那么laravel中就不会有可靠的方法。但是,正如已经回答的,有一种访问$_服务器superglobal的laravel方法,但是正如您在问题中提到的,仍然不可靠。谢谢。它返回客户端IP,我正在寻找服务器IP
env('SERVER_ADDR');
request()->getHost();