有的WEB开发者希望能在自己的网页中增加一个显示访客的ip地址以及所在地理位置的功能,比如:您的IP是:[220.181.16.0] 来自:北京市 电信或者利用所获得的位置信息定制显示一些诸如天气预报、本地新闻等内容。那么这个时候就需要将获取到的用户IP转换成地理位置。

一种做法是可以从网上下载一个ip地址数据库,然后自己写查询代码获取对应关系。这种做法好处是,数据都在本地,查询速度一定可以保证。但有个问题是,IP地址本身没有一个官方统一的库,都是由各个收集者进行维护的,很难保证这其中所有的信息都是准确的。而且IP地址对应的地理位置有可能是会发生变化的,有可能这个IP今天还是北京的,明天就跑到河北去了。这里面涉及到网络运营商的调整。如果是IP地址库的话,一定不会更新很及时,这样就会导致信息出现偏差。

比较合适的做法是,通过调用网上的IP地理位置查询接口来完成这个功能。网上有很多提供收费接口服务。收费接口的好处是数据准确度会比较高,数据也会定期进行维护更新,可以返回除地理位置外更详细的信息。但是收费接口一般会有个比较复杂的申请流程,需要创建账号申请key,然后按照使用频次支付费用,如果是小站的话,比较折腾也比较费钱,不推荐使用。那么有没有既好用又免费的接口呢?答案当时是有的,下面为您推荐两个免费的IP查询地理位置接口。

淘宝的免费接口

调用方法:http://ip.taobao.com/service/getIpInfo.php?ip={ip地址}

例如:http://ip.taobao.com/service/getIpInfo.php?ip=220.181.16.0

返回的格式是json格式,内容如下:

通过ip地址获得用户所在地区(如何通过用户IP地址获取地理位置信息)(1)

新浪的免费接口

调用方法:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip={ip地址}

例如:http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=json&ip=220.181.16.0

返回的格式是json格式,内容如下:

通过ip地址获得用户所在地区(如何通过用户IP地址获取地理位置信息)(2)

剩下的事就是把json格式的数据读取出来显示了,是不是很简单。而且淘宝和新浪他们一定有一套ip数据定期维护的机制,基本上数据也是比较准确的。如果没有特别要求,这两个免费接口也足够可以使用了。但毕竟是免费的,不保证这两个接口未来会一直有效,所以且用且珍惜。

,