laravel5中使用maxmind获取用户位置信息

在torann/geoip中配置maxmind来获取用户位置信息

1、安装扩展
composer require torann/geoip
composer require geoip2/geoip2

2、配置config/app.php
'providers' => [
...
Torann\GeoIP\GeoIPServiceProvider::class,
...
]
'aliases' => [
...
'GeoIP' => Torann\GeoIP\Facades\GeoIP::class,
...
];

3、发布配置
php artisan vendor:publish –provider=”Torann\GeoIP\GeoIPServiceProvider” –tag=config
config下会多出文件config/geoip.php,修改里边的service为maxmind_database,如下:
...
'service' => 'maxmind_database',
...

4、下载geoip数据到本地
config/geoip.php中已经配置好了数据的下载和存储地址,如下:
'services' => [
'maxmind_database' => [
'class' => \Torann\GeoIP\Services\MaxMindDatabase::class,
'database_path' => storage_path('app/geoip.mmdb'),
'update_url' => 'https://geolite.maxmind.com/download/geoip/database/GeoLite2-City.mmdb.gz',
'locales' => ['en'],
],
...
],

直接调用 geoip:update 命令即可将数据信息同步至本地文件storage/app/geoip.mmdb:
php artisan geoip:update

5、清理配置缓存
php artisan config:clear

接着就可以使用geoip($request->ip())获取到用户的location信息啦

当然torann/geoip还支持其他获取位置信息的服务,具体可以查看config/geoip.php中的配置

geoip的其他artisan命令
php artisan geoip:clear 清除缓存的location信息

点赞