使用MaxMind 根据IP地址对访问者定位


有时你需要知道你的站点访问者来自哪个国家——比如如果你正打算执行针对地理区域的广告计划。本文将对此方法进行介绍。

有时你需要知道你的站点访问者来自哪个国家——比如如果你正打算执行针对地理区域的广告计划。这正是象MaxMind's GeoIP一类的工具大显身手的地方——它可以让你从访问者的IP地址轻松获取其确切的地理位置信息。

MaxMind提供了商业数据库和免费数据库。前者更为精确,精度可以达使用者所在城市信息一级,而后者则只能确定国家和地区。在本文中,我们将演示免费版的使用方法。如果你需要更多详细信息,比如远程客户的城市以及国家信息,你需要从MaxMind:http://www.maxmind.com购买更详细的数据库。

起步

要使用此软件,你必须首先下载GeoIP免费国家信息文件:http://www.maxmind.com/app/geoip_country 并将其存放于Web服务器的某个目录中。然后你需要选择数据库文件所使用的语言API。为简化整个过程,我们将使用纯粹的PHP版本以避免其他额外的配置或设置Apache组件。请记住在安装软件到Web站点前阅读软件许可证条款:http://www.maxmind.com/download/geoip/database/LICENSE.txt以确保你同意这些条款。

代码列表A

<?php

// include functions

include("geoip.inc");

// read GeoIP database

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

// map IP to country

echo "IP address 62.149.130.132 located in " . geoip_country_name_by_addr($handle, "62.149.130.132") . " (country code " . geoip_country_code_by_addr($handle, "62.149.130.132") . ")";

// close database handler
// www.knowsky.com

geoip_close($handle);

// print compulsory license notice

echo "<p> -- This product includes GeoIP data created by MaxMind, available from http://maxmind.com/ --";

?>

列表A中的代码显示了使用模块(geoip.inc)以访问GeoIP免费国家信息数据库(GeoIP.dat)的基本方法。示例假设PHP include和国家家信息数据库文件都在与PHP文件本身相同的目录中。如果示例与你的安装不同,则需要根据需要改变路径。

示例代码相当明了,在引入GeoIP PHP函数库后,第一步即使用geoip_open()函数打开GeoIP数据库文件。此函数接收两个参数:数据库文件路径和数据库类型。

我们然后使用由调用geoip_open()返回的句柄,由此根据所给的IP地址以获取两字母的国家代码及直观的国家名称。其中还要分别借助函数geoip_country_code_by_addr()和geoip_country_code_by_name()。二者都接收两个参数:由geoip_open()返回的句柄以及需要解析的IP地址。

一旦获得所需信息,我们通过调用geoip_close()关闭数据库文件。

所做的就是这么简单。



相关阅读:
在unix上让apache支持asp
成功做好网络管理员IIS使用十大原则
CSS3特性:CSS3 target伪类
c# Random快速连续产生相同随机数的解决方案
oracle多条件查询分页存储过程
php utf-8转unicode的函数
模板引擎正则表达式调试小技巧
Can’t open file:'[Table]mytable.MYI'
Oracle 10g手工创建数据库个人经验
ASP.NET下上传图片到数据库,并且读出图片的代码(详细版)
js仿淘宝的拼音检索特效代码
通过JS正则表达式实现验证邮件的代码
Mozilla建议的CSS书写顺序
Oracle用户表空间两步就可以了解
快速导航
PHP MySQL HTML CSS JavaScript MSSQL AJAX .NET JSP Linux Mac ASP 服务器 SQL jQuery C# C++ java Android IOS oracle MongoDB SQLite wamp 交通频道 作文范文 有些事等你发觉我已不在 荷叶与红莲读后感 初中初三作文800字:祖国的生日 游泳中的事 经曲阜城 为昨日的爱送行 人生应当做点错事作文200字 书呆子还伞记作文500字 智慧故事三则 顾里毒舌语录 2016农工党入党申请书 小学道路交通安全“百日”专项整治行动方案 最奢侈的,是花心 那年,夏天作文600字 最有价值的学问全是自己苦读学来的那些 分享的快乐教学反思 你的选择我相信 先进性教育学习动员阶段考核验收报告 水蛛捕鱼 感动父亲的父亲节祝福语 《街市》 最美丽的惊喜 英文励志短文:The Opportunity Brought by Disappointmen 荷叶杯 碎梦的迁徙 变成一只可爱的小海豚作文 2016年度人防教育工作计划 发展党内基层民主 创建群众满意工程 完美四季 你是我独有的味道 扶贫工作心得体会 唯美中英语录欣赏 我喜欢烟花,它真是美丽 中考满分作文:感悟父爱作文800字 感恩的日子 春季养生短信大全2016 我选择等待,有种爱叫做执着 好朋友就是一本书 全县纠风工作实施办法 燃烧的花瓣 为自己创造的生命永远自豪 初中初三作文650字:娥眉记 最经典幽默笑话大全 欢乐五一作文350字 这次旅游让我开阔了眼界,增长了知识 庄生晓梦迷蝴蝶下一句 玩小兔吃萝卜 晒晒我的简单幸福和不幸福 事实的力量1000字 幼儿园小班个人工作总结2016 写给什么?

Copyright © 2016 phpStudy |