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 相关文章推荐
使用无限生命期Session的方法
Oct 09 PHP
木翼下载系统中说明的PHP安全配置方法
Jun 16 PHP
PHPMYADMIN 简明安装教程 推荐
Mar 07 PHP
上传文件先创建目录 再上传到目录里面去
Dec 29 PHP
php下通过curl抓取yahoo boss 搜索结果的实现代码
Jun 10 PHP
解析使用ThinkPHP应该掌握的调试手段
Jun 20 PHP
php实现天干地支计算器示例
Mar 14 PHP
php实现的Cookies操作类实例
Sep 24 PHP
PHP实现UTF-8文件BOM自动检测与移除实例
Nov 05 PHP
PHP使用mysqldump命令导出数据库
Apr 14 PHP
PHP通过串口实现发送短信
Jul 08 PHP
PHP基于ip2long实现IP转换整形
Dec 11 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
使用sockets:从新闻组中获取文章(三)
2006/10/09 PHP
php格式输出文件var_export函数实例
2014/11/15 PHP
thinkphp3.2中Lite文件替换框架入口文件或应用入口文件的方法
2015/05/21 PHP
Zend Framework入门知识点小结
2016/03/19 PHP
Yii2实现同时搜索多个字段的方法
2016/08/10 PHP
php自定义扩展名获取函数示例
2016/12/12 PHP
php正则修正符用法实例详解
2016/12/29 PHP
php中Redis的应用--消息传递
2017/03/28 PHP
PHP7扩展开发之基于函数方式使用lib库的方法详解
2018/01/15 PHP
详解PHP队列的实现
2019/03/14 PHP
php用wangeditor3实现图片上传功能
2019/08/22 PHP
图片自动缩小的js代码,用以防止图片撑破页面
2007/03/12 Javascript
Add Formatted Text to a Word Document
2007/06/15 Javascript
js wmp操作代码小结(音乐连播功能)
2008/11/08 Javascript
javascript 控制 html元素 显示/隐藏实现代码
2009/09/01 Javascript
一次失败的jQuery优化尝试小结
2011/02/06 Javascript
JS验证控制输入中英文字节长度(input、textarea等)具体实例
2013/06/21 Javascript
js综合应用实例简单的表格统计
2013/09/03 Javascript
关闭ie窗口清除Session的解决方法
2014/01/10 Javascript
Bootstrap3 多个模态对话框无法显示的解决方案
2017/02/23 Javascript
JS实现仿饿了么在浏览器标签页失去焦点时网页Title改变
2017/06/01 Javascript
使用InstantClick.js让页面提前加载200ms
2017/09/12 Javascript
JS实现访问DOM对象指定节点的方法示例
2018/04/04 Javascript
jQuery实现的记住帐号密码功能完整示例
2019/08/03 jQuery
用Python计算三角函数之acos()方法的使用
2015/05/15 Python
python中偏函数partial用法实例分析
2015/07/08 Python
python对json的相关操作实例详解
2017/01/04 Python
python3使用pyqt5制作一个超简单浏览器的实例
2017/10/19 Python
对Python协程之异步同步的区别详解
2019/02/19 Python
英国领先的在线药房:Pharmacy First
2017/09/10 全球购物
Blue Nile台湾:钻石珠宝商,订婚首饰、结婚戒指和精品首饰
2017/11/24 全球购物
岗位职责范本
2013/11/23 职场文书
禁毒宣传工作方案
2014/05/23 职场文书
药剂专业自荐书
2014/06/20 职场文书
2015年校长新年寄语
2014/12/08 职场文书
2016银行招聘自荐信
2016/01/28 职场文书