當(dāng)用戶訪問我們的網(wǎng)站時(shí)候,我們可以記錄用戶的ip信息,如果要進(jìn)行數(shù)據(jù)分享,精準(zhǔn)營(yíng)銷就需要我們通過ip去獲取游客的大概的地理信息,比如國(guó)家城市等
下面我們介紹兩種方式
第一種
通過第三接口去獲取
優(yōu)勢(shì):ip庫(kù)更新及時(shí),能獲取到最新數(shù)據(jù),獲取比較簡(jiǎn)單
劣勢(shì):大部分是收費(fèi)(免費(fèi)的也有但是庫(kù)的更新比如收費(fèi)的),當(dāng)需要獲取大量ip時(shí)候,獲取速度會(huì)比較慢
比如:‘w刪w刪w.geoplugin.net/json.gp?ip=123.21.24.1“
第二種
通過插件運(yùn)用本地IP庫(kù)去獲取數(shù)據(jù)
優(yōu)勢(shì):獲取速度快,免費(fèi)
劣勢(shì):ip庫(kù)需要手動(dòng)去更新
下面介紹php 的一個(gè)插件
Geoip2
注意:建議用composer安裝 github下載的有許多報(bào)錯(cuò),不知道是否是我下載版本問題
下載:MaxMind
Geoip2 中需要用到這個(gè)github可以下載
代碼實(shí)現(xiàn)(下面是我用geoip2獲取到了,ip所在大洲和所在的國(guó)家)
use GeoIp2\Database\Reader;
function area_country($ip){
if($ip=='0.0.0.0'){
return false;
}
$reader = new Reader('./GeoLite2-City.mmdb');//ip庫(kù)文件
$record = $reader->city($ip);
$country_code=$record->country->isoCode; // '/ '國(guó)家簡(jiǎn)寫比如:美國(guó):US'
US'
//dump($country_code);
$area_code=$record->continent->code; // '大洲簡(jiǎn)寫比如:歐洲:EU'
$data['area']=$area_code;
$data['country']=$country_code;
return $data;
}
怎么去下載ip庫(kù)
https://w刪w刪w刪.maxmind.com/en/accounts/827334/geoip/downloads
注意需要注冊(cè)用戶
登入頁(yè)面
下載GeoLite2 City數(shù)據(jù)放入網(wǎng)站目錄,在下面的地方填入文件所在地址
如沒特殊注明,文章均為方維網(wǎng)絡(luò)原創(chuàng),轉(zhuǎn)載請(qǐng)注明來自http://pdcharm.com/news/6732.html