[扩展推荐] 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 官方地址 上查看包的源代码,阅读 文档 有助于你使用这个包。

更多现代化 PHP 知识,请前往 Laravel / PHP 知识社区

你可能感兴趣的:(php框架,php7,laravel,php)