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表单提交问题的解决方法
Apr 12 PHP
解析smarty模板中类似for的功能实现
Jun 18 PHP
解析PHP生成静态html文件的三种方法
Jun 18 PHP
PHP的MVC模式实现原理分析(一相简单的MVC框架范例)
Apr 29 PHP
浅谈PHP解析URL函数parse_url和parse_str
Nov 11 PHP
详解PHP的Yii框架中组件行为的属性注入和方法注入
Mar 18 PHP
php版微信开发之接收消息,自动判断及回复相应消息的方法
Sep 23 PHP
Laravel中日期时间处理包Carbon的简单使用
Sep 21 PHP
PHP设计模式之原型设计模式原理与用法分析
Apr 25 PHP
PHP实现的AES加密、解密封装类与用法示例
Aug 02 PHP
php判断电子邮件是否正确方法
Dec 04 PHP
PHP实现随机发放扑克牌
Apr 21 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
ajax+php打造进度条代码[readyState各状态说明]
2010/04/12 PHP
php生成随机密码自定义函数代码(简单快速)
2014/05/10 PHP
Cookie跨域问题解决方案代码示例
2020/11/24 PHP
基于jQuery的固定表格头部的代码(IE6,7,8测试通过)
2010/05/18 Javascript
jQuery避免$符和其他JS库冲突的方法对比
2014/02/20 Javascript
Node.js模拟浏览器文件上传示例
2014/03/26 Javascript
Node.js实现简单聊天服务器
2014/06/20 Javascript
node.js中的fs.utimesSync方法使用说明
2014/12/15 Javascript
jQuery插件实现控制网页元素动态居中显示
2015/03/24 Javascript
javascript实现dom动态创建省市纵向列表菜单的方法
2015/05/14 Javascript
浅谈javascript中的事件冒泡和事件捕获
2016/12/28 Javascript
微信小程序 用户数据解密详细介绍
2017/01/09 Javascript
JavaScript无阻塞加载和defer、async详解
2017/02/26 Javascript
微信小程序 template模板详解及实例代码
2017/03/09 Javascript
详解用webpack2搭建angular2的项目
2017/06/22 Javascript
Node.js console控制台简单用法分析
2019/01/04 Javascript
vue-cli3添加模式配置多环境变量的方法
2019/06/05 Javascript
解决idea开发遇到javascript动态添加html元素时中文乱码的问题
2020/09/29 Javascript
[01:41]DOTA2 2015国际邀请赛中国区预选赛第三日战报
2015/05/28 DOTA
Python字符串中查找子串小技巧
2015/04/10 Python
python实现自动登录人人网并采集信息的方法
2015/06/28 Python
Python实现通过继承覆盖方法示例
2018/07/02 Python
Numpy 改变数组维度的几种方法小结
2018/08/02 Python
浅谈python中str字符串和unicode对象字符串的拼接问题
2018/12/04 Python
简单了解Python3里的一些新特性
2019/07/13 Python
python代码 FTP备份交换机配置脚本实例解析
2019/08/01 Python
django连接oracle时setting 配置方法
2019/08/29 Python
nginx+uwsgi+django环境搭建的方法步骤
2019/11/25 Python
利用python控制Autocad:pyautocad方式
2020/06/01 Python
经管应届生求职信
2013/11/17 职场文书
初中生庆国庆演讲稿范文2014
2014/09/25 职场文书
2015年酒店客房部工作总结
2015/04/25 职场文书
详解MySQL 用户权限管理
2021/04/20 MySQL
用Python爬虫破解滑动验证码的案例解析
2021/05/06 Python
python使用torch随机初始化参数
2022/03/22 Python
Python实现双向链表
2022/05/25 Python