若是想獲取到用戶的地理信息能夠經過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
]複製代碼