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 常用字符串函数总结
Mar 15 PHP
php 多线程上下文中安全写文件实现代码
Dec 28 PHP
PHP 防恶意刷新实现代码
May 16 PHP
深入php list()函数的详解
Jun 05 PHP
PHP输出XML到页面的3种方法详解
Jun 06 PHP
解析php中用PHPMailer来发送邮件的示例(126.com的例子)
Jun 24 PHP
php 启动报错如何解决
Jan 17 PHP
PHP连接和操作MySQL数据库基础教程
Sep 29 PHP
php强制下载文件函数
Aug 24 PHP
PHP 接入支付宝即时到账功能
Sep 18 PHP
PHP中md5()函数的用法讲解
Mar 30 PHP
Laravel 实现添加多语言提示信息
Oct 25 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通过cookies获取远程网页的指定代码
2013/06/25 PHP
有关于PHP中常见数据类型的汇总分享
2014/01/06 PHP
PHP实现从远程下载文件的方法
2015/03/12 PHP
PHP多种序列化/反序列化的方法详解
2017/06/23 PHP
javascript实现的动态添加表单元素input,button等(appendChild)
2007/11/24 Javascript
Extjs入门之动态加载树代码
2010/04/09 Javascript
jquery时间下拉框小例子
2013/04/15 Javascript
Js判断参数(String,Array,Object)是否为undefined或者值为空
2013/11/04 Javascript
jquery中对于批量deferred的处理方法
2014/01/22 Javascript
改变状态栏文字的js代码
2014/06/13 Javascript
express的中间件bodyParser详解
2014/12/04 Javascript
浅谈Javascript数组索引
2015/07/29 Javascript
微信小程序 wxapp内容组件 icon详细介绍
2016/10/31 Javascript
百度地图API之百度地图退拽标记点获取经纬度的实现代码
2017/01/12 Javascript
js模拟微博发布消息
2017/02/23 Javascript
jQuery模拟下拉框选择对应菜单的内容
2017/03/07 Javascript
Vue.js学习记录之在元素与template中使用v-if指令实例
2017/06/27 Javascript
swiper.js插件实现pc端文本上下滑动功能示例
2018/12/03 Javascript
JS数据类型分类及常用判断方法
2020/11/19 Javascript
[00:02]DOTA2新版本使用PA至宝后暴击展示
2014/11/19 DOTA
python中实现延时回调普通函数示例代码
2017/09/08 Python
Python将多个excel表格合并为一个表格
2021/02/22 Python
在CentOS6上安装Python2.7的解决方法
2018/01/09 Python
Sanic框架流式传输操作示例
2018/07/18 Python
解决tensorflow测试模型时NotFoundError错误的问题
2018/07/26 Python
Python 单元测试(unittest)的使用小结
2018/11/14 Python
python实现文本界面网络聊天室
2018/12/12 Python
python实现K近邻回归,采用等权重和不等权重的方法
2019/01/23 Python
解决运行出现'dict' object has no attribute 'has_key'问题
2020/07/15 Python
Python环境配置实现pip加速过程解析
2020/11/27 Python
美国运动鞋和服装网上商店:YCMC
2018/09/15 全球购物
机修工岗位职责
2013/11/24 职场文书
学生自我鉴定
2013/12/18 职场文书
《学会合作》教学反思
2014/04/12 职场文书
《宿建德江》教学反思
2014/04/23 职场文书
资料员岗位职责
2015/02/10 职场文书