科技行者

行者学院 转型私董会 科技行者专题报道 网红大战科技行者

知识库

知识库 安全导航

至顶网软件频道用MaxMind的GeoIP定位访问者的IP

用MaxMind的GeoIP定位访问者的IP

  • 扫一扫
    分享文章到微信

  • 扫一扫
    关注官方公众号
    至顶头条

有的时候,你就是需要知道自己网站的访问者来自于哪个国家——例如,你正在试图实现针对地理位置的广告宣传。这就让MaxMind的GeoIP这样的工具有了用武之地——它让你能够轻易地利用访问者的IP地址取得地理数据。

作者:Builder.com 2007年6月20日

关键字: Office

  • 评论
  • 分享微博
  • 分享邮件
本文译自Builder.com,未经许可请勿转载

有的时候,你就是需要知道自己网站的访问者来自于哪个国家——例如,你正在试图实现针对地理位置的广告宣传。这就让MaxMind的GeoIP这样的工具有了用武之地——它让你能够轻易地利用访问者的IP地址取得地理数据。

MaxMind同时提供商业版和免费版的数据库;商业版的数据库极其准确,可以精确到用户所在城市,而免费版的只能识别国家或地区。我们将在本文里使用免费版的数据库。如果你需要更加详细的信息,例如远程客户所在的城市和州,你就需要从MaxMind购买更加详细的数据库。

入门

要使用这个产品,你必须首先下载GeoIP免费国家(Free Country)文件,并把它解压到你Web服务器的一个目录下。然后你就要选择用哪个语言API来使用数据库文件。为了简单地说明问题,我们准备使用纯PHP版本,因为它不需要任何其他的配置或者Apache模块。不要忘了在把这些东西安装到Web服务器之前阅读许可证条款,以确保你符合里面的规定。

列表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()来关闭数据库文件了。就这么简单!

使用地理数据

现在,该对这些地理信息做些什么呢?嗯,地理数据很好的一个用途是针对用户投放适宜他们所在国家情况的广告。下面就是一个简单的、用PHP写成的例子,它使用一个MySQL数据库来发布针对地理位置的广告。



责任编辑:李宁

欢迎评论投稿
    • 评论
    • 分享微博
    • 分享邮件
    邮件订阅

    如果您非常迫切的想了解IT领域最新产品与技术信息,那么订阅至顶网技术邮件将是您的最佳途径之一。

    重磅专题
    往期文章
    最新文章