php GeoIP的使用教程


Posted in PHP onMarch 09, 2011

GeoIP介绍:
什么是GepIP ?
所谓GeoIP,就是通过来访者的IP, 定位他的经纬度,国家/地区,省市,甚至街道等位置信息。这里面的技术不算难题,关键在于有个精准 的数据库。有了准确的数据源就奇货可居赚点小钱,可是发扬合作精神,集体贡献众人享用是我们追求的。
GeoIP如何使用?
首先我们需要数据信息,所以先获取一个免费的数据库:GeoIP.dat.gz ,接着解压得到:GeoIP.dat, 然后就是对数据文件的按需操作,这边范例使用的是PHP。
GeoIP + PHP的使用
方法一:
下载 GeoIP 的 PHP 文件geoip.inc。打包下载

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测试

方法二:
把 GeoIP 安装成 PHP 扩展
yum install GeoIP GeoIP-data GeoIP-devel

下载 GeoIP 数据库
wget http://geolite.maxmind.com/download/geoip/database/GeoLiteCity.dat.gz
gzip -d GeoLiteCity.dat.gz
mv GeoLiteCity.dat /var/lib/GeoIP/GeoIPCity.dat

下载 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 部份函数了

PHP 相关文章推荐
用PHP生成自己的LOG文件
Oct 09 PHP
PHP 手机归属地查询 api
Feb 08 PHP
PHP zlib扩展实现页面GZIP压缩输出
Jun 17 PHP
ajax返回值中有回车换行、空格的解决方法分享
Oct 24 PHP
PHP向socket服务器收发数据的方法
Jan 24 PHP
php将图片保存为不同尺寸图片的图片类实例
Mar 30 PHP
WordPress导航菜单的滚动和淡入淡出效果的实现要点
Dec 14 PHP
PHP自定义函数格式化json数据示例
Sep 14 PHP
浅谈ThinkPHP中initialize和construct的区别
Apr 01 PHP
php实现的中秋博饼游戏之绘制骰子图案功能示例
Nov 06 PHP
利用PHP计算有多少小于当前数字的数字方法示例
Aug 26 PHP
PHP7 整型处理机制修改
Mar 09 PHP
让PHP COOKIE立即生效,不用刷新就可以使用
Mar 09 #PHP
通过JavaScript或PHP检测Android设备的代码
Mar 09 #PHP
PHP中uploaded_files函数使用方法详解
Mar 09 #PHP
PHP $_FILES函数详解
Mar 09 #PHP
PHP中for与foreach的区别分析
Mar 09 #PHP
php模板中出现空行解决方法
Mar 08 #PHP
在MongoDB中模拟Auto Increment的php代码
Mar 06 #PHP
You might like
基于PHP+MySQL的聊天室设计
2006/10/09 PHP
基于php在各种web服务器的运行模式详解
2013/06/03 PHP
thinkPHP3.2.2框架行为扩展及demo示例
2018/06/19 PHP
yii2 上传图片的示例代码
2018/11/02 PHP
childNodes.length与children.length的区别
2009/05/14 Javascript
jquery星级插件、支持页面中多次使用
2012/03/25 Javascript
getComputedStyle与currentStyle获取样式(style/class)
2013/03/19 Javascript
jquery动态加载select下拉框示例代码
2013/12/10 Javascript
jQuery插件zepto.js简单实现tab切换
2015/06/16 Javascript
javaScript中Math()函数注意事项
2015/06/18 Javascript
JavaScript实现搜索框的自动完成功能(一)
2016/02/25 Javascript
JS构造函数与原型prototype的区别介绍
2016/07/04 Javascript
js中的事件委托或是事件代理使用详解
2017/06/23 Javascript
JS实现微信摇一摇原理解析
2017/07/22 Javascript
Vue v2.5 调整和更新不完全问题
2017/10/24 Javascript
使用Electron构建React+Webpack桌面应用的方法
2017/12/15 Javascript
Nodejs连接mysql并实现增、删、改、查操作的方法详解
2018/01/04 NodeJs
vue根据值给予不同class的实例
2018/09/29 Javascript
用Cordova打包Vue项目的方法步骤
2019/02/02 Javascript
jquery中为什么能用$操作
2019/06/18 jQuery
vue 全局环境切换问题
2019/10/27 Javascript
javascript实现简单搜索功能
2020/03/26 Javascript
在VUE中使用lodash的debounce和throttle操作
2020/11/09 Javascript
wxpython中利用线程防止假死的实现方法
2014/08/11 Python
Python3实现Web网页图片下载
2016/01/28 Python
Python列表(list)所有元素的同一操作解析
2019/08/01 Python
python爬虫selenium和phantomJs使用方法解析
2019/08/08 Python
解决springboot yml配置 logging.level 报错问题
2020/02/21 Python
Selenium元素定位的30种方式(史上最全)
2020/05/11 Python
使用Pycharm在运行过程中,查看每个变量的操作(show variables)
2020/06/08 Python
英国优质家居用品网上品牌:URBANARA
2018/06/01 全球购物
爸爸的花儿落了教学反思
2014/02/20 职场文书
2014学校领导四风对照检查材料思想汇报
2014/09/23 职场文书
单位租房协议书样本
2014/10/30 职场文书
Laravel中获取IP的真实地理位置
2021/04/01 PHP
探究Mysql模糊查询是否区分大小写
2021/06/11 MySQL