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 相关文章推荐
搜索引擎技术核心揭密
Oct 09 PHP
使用PHP编写的SVN类
Jul 18 PHP
PHPMailer发送HTML内容、带附件的邮件实例
Jul 01 PHP
PHP生成数组再传给js的方法
Aug 07 PHP
PHP中的替代语法简介
Aug 22 PHP
php获取从html表单传递数组的方法
Mar 20 PHP
PHP判断一个字符串是否是回文字符串的方法
Mar 23 PHP
PHP CodeIgniter框架的工作原理研究
Mar 30 PHP
PHP引用的调用方法分析
Apr 25 PHP
laravel执行php artisan migrate报错的解决方法
Oct 09 PHP
使用Git实现Laravel项目的自动化部署
Nov 24 PHP
Laravel 手动开关 Eloquent 修改器的操作方法
Dec 30 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
php下实现伪 url 的超简单方法[转]
2007/09/24 PHP
PHP缓存技术的多种方法小结
2012/08/14 PHP
php+mysqli预处理技术实现添加、修改及删除多条数据的方法
2015/01/30 PHP
优化WordPress的Google字体以加速国内服务器上的运行
2015/11/24 PHP
javascript flash下fromCharCode和charCodeAt方法使用说明
2008/01/12 Javascript
js或css实现滚动广告的几种方案
2010/01/28 Javascript
iframe 异步加载技术及性能分析
2011/07/19 Javascript
Extjs4 类的定义和扩展实例
2013/06/28 Javascript
解析Javascript中大括号“{}”的多义性
2013/12/02 Javascript
javascript分页代码实例分享(js分页)
2013/12/13 Javascript
js中浮点型运算BUG的解决方法说明
2014/01/06 Javascript
document.forms[].submit()使用介绍
2014/02/19 Javascript
JavaScript通过元素索引号删除数组中对应元素的方法
2015/03/18 Javascript
D3.js实现雷达图的方法详解
2016/09/22 Javascript
jQuery实现滚动条滚动到子元素位置(方便定位)
2017/01/08 Javascript
ubuntu编译nodejs所需的软件并安装
2017/09/12 NodeJs
angularJs中$scope数据序列化的实例
2018/09/30 Javascript
微信小程序实现搜索框功能及踩过的坑
2020/06/19 Javascript
Python HTMLParser模块解析html获取url实例
2015/04/08 Python
Django如何防止定时任务并发浅析
2019/05/14 Python
Python基于Opencv来快速实现人脸识别过程详解(完整版)
2019/07/11 Python
python提取xml里面的链接源码详解
2019/10/15 Python
Python Numpy数组扩展repeat和tile使用实例解析
2019/12/09 Python
python 在sql语句中使用%s,%d,%f说明
2020/06/06 Python
python学习将数据写入文件并保存方法
2020/06/07 Python
美国第二大团购网站:LivingSocial
2016/07/24 全球购物
比利时家具购买网站:Home24
2019/01/03 全球购物
数字漫画:comiXology
2020/06/13 全球购物
Loreto Gallo英国:欧洲领先的在线药房
2021/01/21 全球购物
公益活动策划方案
2014/01/09 职场文书
青年教师培训方案
2014/02/06 职场文书
公司活动方案范文
2014/03/06 职场文书
幼儿园教师岗位职责
2014/03/17 职场文书
如何写贫困证明申请书
2014/10/29 职场文书
环境保护宣传标语大全!
2019/06/28 职场文书
MySQL自定义函数及触发器
2022/08/05 MySQL