php使用GeoIP库实例


Posted in PHP onJune 27, 2014

需要注意的是maxmind是geoip数据库的提供方,
同时也提供了很多语言的sample和api说明文档。
比如php,和php的geoip库是有很大区别的,包含使用方式,接口函数。
php官方的geoip需要配置php环境,加载geoip.dll库,并在php.ini中指定GEOIP库地址。
maxmind提供一系列 .inc 和 .php 对环境无依赖,只要支持php,直接require后即可使用。

一、GEOIP数据库

http://dev.maxmind.com/geoip/geolite
细分到国家:GeoLite Country
细分到城市:GeoLite City

二、php官方geoip.dll库

下载dll http://windows.php.net/downloads/pecl/releases/geoip/1.0.8/
修改php.ini,启用geoip库:

extension=php_geoip.dll

追加geoip段,指定数据库位置:
[geoip]

geoip.custom_directory = "D:\php5.3\geo\"

测试代码

注意geoip.dll中使用的 GeoIPCity.dat 即 GeoLiteCity.dat,用的时候注意看提示

echo geoip_country_name_by_name( "8.8.8.8" ) . "\n";

print_r( geoip_record_by_name( "8.8.8.8" ) );

echo geoip_country_name_by_name( "61.139.2.69" ). "\n";

print_r( geoip_record_by_name(  "61.139.2.69" ) );

三、MaxMind官方php文件函数库

文档和示例:http://dev.maxmind.com/geoip/downloadable
修改maxmind示例中 sample.php 和 sample_city.php 中 GeoIP.dat/GeoLiteCity.dat 路径为你自己的路径
同一目录用 “./GeoIP.dat” 或 “./GeoLiteCity.dat” 即可。
详细到国家

include("geoip.inc");

$gi = geoip_open( "./GeoIP.dat", GEOIP_STANDARD );

echo geoip_country_code_by_addr($gi, "8.8.8.8") . "\t" . geoip_country_name_by_addr($gi, "8.8.8.8") . "\n";

echo geoip_country_code_by_addr($gi, "61.139.2.69") . "\t" . geoip_country_name_by_addr($gi, "61.139.2.69") . "\n";

geoip_close($gi);

详细到国家城市

include("geoipcity.inc");

include("geoipregionvars.php");

$gi = geoip_open("./GeoLiteCity.dat",GEOIP_STANDARD);

 

$record = geoip_record_by_addr($gi,"8.8.8.8");

print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "\n";

print $record->region . " " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "\n";

print $record->city . "\n";

print $record->postal_code . "\n";

print $record->latitude . "\n";

print $record->longitude . "\n";

print $record->metro_code . "\n";

print $record->area_code . "\n";

print $record->continent_code . "\n";

 

print "\n-----\n";

$record = geoip_record_by_addr($gi,"61.139.2.69");

print $record->country_code . " " . $record->country_code3 . " " . $record->country_name . "\n";

print $record->region . " " . $GEOIP_REGION_NAME[$record->country_code][$record->region] . "\n";

print $record->city . "\n";

print $record->postal_code . "\n";

print $record->latitude . "\n";

print $record->longitude . "\n";

print $record->metro_code . "\n";

print $record->area_code . "\n";

print $record->continent_code . "\n";

geoip_close($gi);

看自己开发环境和具体情况决定用哪种

PHP 相关文章推荐
深入探讨PHP中的内存管理问题
Aug 31 PHP
php压缩HTML函数轻松实现压缩html/js/Css及注意事项
Jan 27 PHP
使用PHP破解防盗链图片的一个简单方法
Jun 07 PHP
php函数serialize()与unserialize()用法实例
Nov 06 PHP
PHP使用feof()函数读文件的方法
Nov 07 PHP
PHP读取汉字的点阵数据
Jun 22 PHP
php的闭包(Closure)匿名函数初探
Feb 14 PHP
PHP进程通信基础之信号
Feb 19 PHP
利用PHP实现开心消消乐的算法示例
Oct 12 PHP
PHP unlink与rmdir删除目录及目录下所有文件实例代码
Feb 07 PHP
基于PHP+Mysql简单实现了图书购物车系统的实例详解
Aug 06 PHP
PHP使用Redis队列执行定时任务实例讲解
Mar 24 PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十四)
Jun 26 #PHP
PHP网页游戏学习之Xnova(ogame)源码解读(十三)
Jun 26 #PHP
ThinkPHP模板自定义标签使用方法
Jun 26 #PHP
ThinkPHP调用百度翻译类实现在线翻译
Jun 26 #PHP
使用ThinkPHP+Uploadify实现图片上传功能
Jun 26 #PHP
ThinkPHP采用GET方式获取中文参数查询无结果的解决方法
Jun 26 #PHP
ThinkPHP实现将本地文件打包成zip下载
Jun 26 #PHP
You might like
新52大事件
2020/03/03 欧美动漫
用PHP实现小型站点广告管理(修正版)
2006/10/09 PHP
Windows和Linux中php代码调试工具Xdebug的安装与配置详解
2014/05/08 PHP
PHP图片自动裁切应付不同尺寸的显示
2014/10/16 PHP
php curl登陆qq后获取用户信息时证书错误
2015/02/03 PHP
WordPress中制作导航菜单的PHP核心方法讲解
2015/12/11 PHP
详解thinkphp实现excel数据的导入导出(附完整案例)
2016/12/29 PHP
理解Javascript_14_函数形式参数与arguments
2010/10/20 Javascript
浅析Prototype的模板类 Template
2011/12/07 Javascript
js模仿jquery的写法示例代码
2013/06/16 Javascript
JavaScript实现按照指定长度为数字前面补零输出的方法
2015/03/19 Javascript
js实现带圆角的两级导航菜单效果代码
2015/08/24 Javascript
基于angular中的重要指令详解($eval,$parse和$compile)
2016/10/21 Javascript
详细介绍RxJS在Angular中的应用
2017/09/23 Javascript
js中如何完美的解析数据
2018/03/18 Javascript
一篇文章介绍redux、react-redux、redux-saga总结
2019/05/23 Javascript
vue中使用极验验证码的方法(附demo)
2019/12/04 Javascript
Vue单文件组件开发实现过程详解
2020/07/30 Javascript
超详细小程序定位地图模块全系列开发教学
2020/11/24 Javascript
[06:40]2014DOTA2西雅图国际邀请赛 DK战队巡礼
2014/07/07 DOTA
对于Python异常处理慎用“except:pass”建议
2015/04/02 Python
python pygame实现方向键控制小球
2019/05/17 Python
Python编写带选项的命令行程序方法
2019/08/13 Python
vscode 配置 python3开发环境的方法
2019/09/19 Python
pycharm的python_stubs问题
2020/04/08 Python
python matplotlib工具栏源码探析二之添加、删除内置工具项的案例
2021/02/25 Python
html5 input属性使用示例
2013/06/28 HTML / CSS
日本网路线上商品代购服务:转送JAPAN
2016/08/05 全球购物
全球销量第一生发产品:Viviscal
2017/12/21 全球购物
类、抽象类、接口的差异
2016/06/13 面试题
高级护理专业大学生求职信
2013/10/24 职场文书
中专生毕业个人鉴定
2014/02/26 职场文书
老人祝寿主持词
2014/03/28 职场文书
大学生精神文明先进个人事迹材料
2014/05/02 职场文书
个人工作失误的保证书怎么写?
2019/06/21 职场文书
Django实现聊天机器人
2021/05/31 Python