[扩展推荐] Laravel 中利用 GeoIP 获取用户地理位置信息
我最近需要一个用户地域检测来设置用户的默认区域和货币。由 Daniel Stainback 创建的 torann/geoip 很好地满足为Laravel 5 项目提供 GeoIP 服务的要求。
这个 Laravel GeoIP 包支持一些服务,包括默认的 ip-api.com 服务, 一个可下载的 Maxmind 数据库和 Maxmind API。你也可以通过这个配置轻松地增加一个通用的服务。
这个包的基本使用是引用 geoip()
帮助函数,可选择性传递 IP 地址参数。下面是一个基于 IP 地址的地址对象的例子:
\Torann\GeoIP\Location {
#attributes:array [
'ip' => '232.223.11.11',
'iso_code' => 'US',
'country' => 'United States',
'city' => 'New Haven',
'state' => 'CT',
'state_name' => 'Connecticut',
'postal_code' => '06510',
'lat' => 41.28,
'lon' => -72.88,
'timezone' => 'America/New_York',
'continent' => 'NA',
'currency' => 'USD',
'default' => false,
]
}
正如你所看到的,地址对象包含一些地域信息,有助于决定用户的货币,时区和国家 ISO 代码。
如果目标地址没有找到,可使用一份可配置的备用地址代替,这时 default
参数被设置为 true
。你可以覆盖默认设置,默认配置如下所示:
'default_location' => [
'ip' => '127.0.0.0',
'iso_code' => 'US',
'country' => 'United States',
'city' => 'New Haven',
'state' => 'CT',
'state_name' => 'Connecticut',
'postal_code' => '06510',
'lat' => 41.31,
'lon' => -72.92,
'timezone' => 'America/New_York',
'continent' => 'NA',
'default' => true,
'currency' => 'USD',
],
在 Github 官方地址 上查看包的源代码,阅读 文档 有助于你使用这个包。
本文中的所有译文仅用于学习和交流目的,转载请务必注明文章译者、出处、和本文链接
我们的翻译工作遵照 CC 协议,如果我们的工作有侵犯到您的权益,请及时联系我们。
本帖已被设为精华帖!
:+1:
这翻译速速也是太快了吧,赞!几分钟前翻译进度还是0%的呢,哈哈 :joy:
对中国地区怎么样?
感谢
Maxmind库不太准确啊,这个就一直这样不更新一下么 :joy:,体验有点差。。