Laravel 5.5 中的用户 IP 地址和位置

Posted

技术标签:

【中文标题】Laravel 5.5 中的用户 IP 地址和位置【英文标题】:User IP address and location in Laravel 5.5 【发布时间】:2018-03-13 21:59:23 【问题描述】:

我正在尝试在注册期间获取用户的 IP 地址和位置...当用户第一次注册时,我想将 IP 地址和他的位置保存在用户表的数据库中。

请给我一个解决方案来获取新用户的ip地址和位置...

下面是我正在使用的行,但这给了我错误的本地主机 IP 地址...

127.0.0.1

$user = new User([
        'firstname' => $data['firstname'],
        'lastname' => $data['lastname'],
        'company' => $data['company'],
        'email' => $data['email'],
        'password' => bcrypt($data['password']),
        'phone' => $data['phone'],
        'country' => $data['country'],
        'zipcode' => $data['zipcode'],
        'city' => $data['city'],
        'state' => $data['state'] == "other" ? $data['custom_state'] : $data['state'],
        'ip_address' => request()->ip(),
    ]);

【问题讨论】:

'ip_addres' => \Request::ip(), 检查这个 仅供参考 - 我在本地工作时也获得了我的本地主机 IP 地址,但是一旦在远程服务器上, ip() 方法返回了预期的结果。 【参考方案1】:

试试这个来获取用户的IP地址:

'ip_address' => \Request::ip();

在获得 ip 地址后,您可以使用以下软件包从该 ip 获取位置。

https://github.com/stevebauman/location

'position' = Location::get(ip_address);

如果你得到localhost ip地址然后使用这个包解决它:https://packagist.org/packages/fideloper/proxy

【讨论】:

嗯我试试找等 我正在使用这个 fideloper 包,但仍然获得本地主机 ip..不是我原来的 ip。 如果用户使用了ip转换器,会发生什么?

以上是关于Laravel 5.5 中的用户 IP 地址和位置的主要内容,如果未能解决你的问题,请参考以下文章

Laravel 5.5 中的多字段排序

Laravel 路由中的 IP 地址显示 404

laravel 5.5 内置鉴权特征库查询位置

如何在 laravel 5.5 中使用 phpunit 测试中间件?

Laravel 中的地址验证

laravel 模型关系 5.5