synortix / laravel-geoip2
MaxMind GeoIp2 的 Laravel 绑定和数据库更新器。
此包的规范仓库似乎已消失,因此包已被冻结。
v1.0.0
2019-02-13 09:19 UTC
Requires
- php: ^7.0
- geoip2/geoip2: ~2.0
- laravel/framework: 5.*
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 文件。