所謂GeoIP,就是經過來訪者的IP, 定位他的經緯度,國家/地區,省市,甚至街道等位置信息。這裏面的技術不算難題,關鍵在於有個精準 的數據庫。有了準確的數據源就奇貨可居賺點小錢,但是發揚合做精神,集體貢獻衆人享用是咱們追求的。php
首先咱們須要數據信息,因此先獲取一個免費的數據庫://sjolzy.cn/php/GeoIP/bak/GeoIP.dat.gz ,接着解壓獲得:GeoIP.dat, 而後就是對數據文件的按需操做,這邊範例使用的是PHP。數據庫
方法一:函數
下載 GeoIP 的 PHP 文件geoip.inc,保存爲 geoip.inc.php測試
//sjolzy.cn/php/GeoIP/bak/geoip.incspa
php使用代碼.net
include("geoip.inc.php");
// 打開數據文件
$gi = geoip_open("GeoIP.dat",GEOIP_STANDARD);
// 獲取國家代碼
$country_code = geoip_country_code_by_addr($gi, $_SERVER['REMOTE_ADDR']);
echo "Your country code is: $country_code ";
// 獲取國家名稱
$country_name = geoip_country_name_by_addr($gi, $_SERVER['REMOTE_ADDR']);
echo "Your country name is: $country_name ";
// 關閉文件
geoip_close($gi);
注:在本地測試的話因 爲$_SERVER['REMOTE_ADDR']和$_SERVER['REMOTE_ADDR']多是127.0.0.1,所 以輸出的內容爲空。能夠本身帶入IP測試。code
方法二:ip
把 GeoIP 安裝成 PHP 擴展
yum install GeoIP GeoIP-data GeoIP-develget
下載 GeoIP 數據庫
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gzip -d GeoLiteCity.dat.gz
mv GeoLiteCity.dat /var/lib/GeoIP/GeoIPCity.datit
下載 GeoIP 的 PECL 擴展
下載地址 http://pecl.php.net/package/geoip
wget -c http://pecl.php.net/get/geoip-1.0.7.tgz
tar -zxvf geoip-1.0.7.tgz
安 裝 GeoIP 的 PECL 擴展
cd geoip-1.0.7
/usr/local/php/bin/phpize
./configure --with-php-config=/usr/local/php/bin/php-config --with-geoip
make
make install
在 php.ini 里加上
extension=geoip.so
接着重啓一下 php 就好了
如今,你能夠使用 php 手冊裏的 GeoIP 部份函數了
http://cn.php.net/manual/en/book.geoip.php
補充
根據IP肯定用戶國家: