synortix/laravel-geoip2

MaxMind GeoIp2 的 Laravel 绑定和数据库更新器。

此包的规范仓库似乎已消失,因此包已被冻结。

v1.0.0 2019-02-13 09:19 UTC

This package is auto-updated.

Last update: 2019-09-13 11:22:43 UTC


README

MaxMind GeoIp2 Lite 的 Laravel 绑定和数据库更新器。

简化 MaxMind 数据库更新,并提供与 Laravel 依赖注入(DI)一起使用的开箱即用的绑定。

安装

Composer

  • 要开始,请通过 composer CLI 安装包
composer require synortix/laravel-geoip2:1.*
  • 发布 geoip 包的配置
php artisan vendor:publish --provider="Synortix\GeoIp\GeoIpServiceProvider"
  • 运行 php artisan synortix:geoip:update 来获取最新的数据库

使用方法

使用数据库自动更新

App\Console\Kernel.php 中注册 cron

 protected function schedule(Schedule $schedule)
 {
    ...
    $schedule->command('synortix:geoip:update')->monthly();
    ...
 }

此代码将每月运行一次,以从 MaxMind 获取最新的 Lite 数据库。

config/geoip.php 中,您将能够更改 URL 或数据库名称,以防在 MaxMind 端更改。

使用 resolve

/** @var \GeoIp2\Database\Reader $reader */
$reader = resolve(\GeoIp2\ProviderInterface::class);
$reader->country('127.0.0.1');

使用 DI


use GeoIp2\Database\Reader;
use GeoIp2\ProviderInterface;

class MyService
{
    /** @var Reader */
    private $geoip;
    
    public function __construct(ProviderInterface $geoip)
    {
      $this->geoip = $geoip;
    }
    
    public function detectCountryCodeUsingIp(string $ip) : string
    {
        return $this->geoip->country('127.0.0.1')->country->isoCode;
    }
}

许可证

本项目采用 MIT 许可证授权 - 有关详细信息,请参阅 LICENSE.md 文件。