使用MaxMind 根据IP地址对访问者定位
2008-05-01 03:53
225 查看
有时你需要知道你的站点访问者来自哪个国家——比如如果你正打算执行针对地理区域的广告计划。本文将对此方法进行介绍。
有时你需要知道你的站点访问者来自哪个国家——比如如果你正打算执行针对地理区域的广告计划。这正是象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()关闭数据库文件。
所做的就是这么简单。
有时你需要知道你的站点访问者来自哪个国家——比如如果你正打算执行针对地理区域的广告计划。这正是象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()关闭数据库文件。
所做的就是这么简单。
相关文章推荐
- 使用MaxMind 根据IP地址对访问者定位
- 使用MaxMind 根据IP地址对访问者定位
- 根据IP地址对访问者定位
- 使用VMware VSphere WebService SDK进行开发 (五)——根据虚拟机的名称获取对应主机的IP地址
- php根据IP地址跳转对应的城市,淘宝REST api调用地址直接使用
- Android使用Google Map服务-根据地址定位
- 使用纯真IP数据库定位IP地址所在地
- 根据内核Oops 定位代码工具使用— addr2line 、gdb、objdump
- Android使用Google Map服务-根据地址定位
- 根据内核Oops 定位代码工具使用— addr2line 、gdb、objdump
- 使用IP地址快速定位交换机端口和目标主机
- 如何根据数据库保存的经度纬度使用百度API定位到
- Android使用Google Map服务-根据地址定位
- 使用php根据起始ip地址和掩码 计算广播地址(网段结束地址)
- JAVASCRIPT使用百度定位根据经纬度返回城市名称
- python 使用geoLiteCity 根据ip地址获取物理位置
- 根据IP地址获取真实IP所在地区 ,使用纯真IP库(纯真版20160215)
- 根据IP地址定位城市
- 通过使用You Are Here 按钮来定位访问者的浏览位置
- 使用getIdentifier()获取资源Id (根据Id的名字直接定位取到资源)