若是想获取到用户的地理信息能够经过geoip来实现,或者第三方接口,下面是geoip库的实现方式php
geoip是经过来访者的IP,定位他的经纬度,国家/地区,省市,甚至街道等位置信息laravel
torann/geoip 是为 Laravel 定制的获取 IP 地理信息的扩展包git
若是你想利用高德的api获取一些地理信息的话点击:juejin.im/post/5d0c7e…github
1). 使用 composer 安装:redis
composer require torann/geoip复制代码
2). 修改 config/app
文件,在 providers
数组内追加以下内容:数据库
'providers' => [
...
'Torann\GeoIP\GeoIPServiceProvider',
],复制代码
3). 修改 config/app
文件,在 aliases
数组内追加以下内容:api
'aliases' => [
...
'GeoIP' => 'Torann\GeoIP\GeoIP',
],复制代码
4). 生成配置文件数组
php artisan vendor:publish复制代码
配置文件生成以后,能够在 config/geoip.php
进行修改缓存
5). 更新 IP 地址库bash
php artisan geoip:update复制代码
.env
文件,将缓存配置修改为 redis
便可获取当前服务器 IP 对应的地理位置信息
use Torann\GeoIP\Facades\GeoIP;
$ip = $request->ip();
$location = GeoIP::getLocation($ip)->toArray();复制代码
获取 IP: 232.223.11.11 对应的地理位置信息
$location = GeoIP::getLocation('222.128.24.20')->toArray();复制代码
结果以下:
array:13 [
"ip" => "222.128.24.20"
"iso_code" => "CN"
"country" => "China"
"city" => "Beijing"
"state" => "BJ"
"state_name" => "Beijing"
"postal_code" => null
"lat" => 39.9288
"lon" => 116.3889
"timezone" => "Asia/Shanghai"
"continent" => "AS"
"currency" => "CNY"
"default" => false
]复制代码