WordPress使用淘宝IP地址库的API显示评论者的位置信息

1 跟风API

最近各种云平台很是火爆,博主也跟了一把风。之前博客主题的评论列表信息栏处,调用的是新浪IP地址查询接口。新浪的这个IP接口早在2009年就开放了,不过貌似查询的结果准确性不是很高,不像纯真的IP库更新得那么及时。所以,vfhky寻思换个其它的IP查询接口提高博客的评论信息准确度。

2 选择淘宝IP地址库

网上查看了下资料,提供IP查询接口的有这么几个:腾讯、搜狐、淘宝和有道。不过,腾讯已经把接口(http://fw.qq.com/ipaddress)封掉了,只限企鹅自家使用。题外话:对于腾讯的做法咱们习惯就好,早已无力吐槽了。相对于搜狐和有道的IP接口,淘宝肯定具有优势。谁都不能低估淘宝帝国对于掌握用户信息深度的强烈渴望和决心,而IP地址就是用户的足迹线所在。在查看了淘宝IP地址库的API官方资料(地址【http://ip.taobao.com/accurancy.php】),vfhky毅然决定把新浪的IP查询接口改成淘宝的IP查询接口。

WordPress使用淘宝IP地址库的API显示评论者的位置信息

 

WordPress使用淘宝IP地址库的API显示评论者的位置信息

 

3 需要考虑的问题

博客主题评论列表的IP信息是通过Jquery加载的,而淘宝提供的API接口返回的数据是Json格式。相对于直接通过PHP获取Json数据而言,这种Ajax交互方式比较难一点。博主就先卖个关子,具体的实现代码将在下一篇文章贴出。这里贴出之前用新浪IP地址查询接口获取IP信息的代码,评论列表的IP信息同样是通过Jquery加载处理后的新浪IP查询接口返回的JS数据。

4.1 修改functions.php文件

找到评论信息显示列表的那个文件(博主的是functions.php),在相应的位置加上如下代码。其作用是在jQuery获取IP信息之前,显示“正在查询……”的字样。代码中的waiting.gif是上面的省略号动态图片,这个看个人喜好来决定需不需要用;$ip代表从数据查询出来的评论者的IP数据。

<span class="vfhkyipquery" data-ip="' . $ip . '">正在查询<img src="' . get_bloginfo('template_url') . '/images/waiting.gif" alt="..." style="vertical-align:baseline;" /></span>

4.2 修改JS文件

在主题的一个js文件中添加以下代码,注意该js文件一定要是会在文章页面加载的哦!最终的效果会类似于:中国广东深圳 电信。

jQuery(document).ready(function($){
	function vfhkyipquery(){
		$(".vfhkyipquery").each(function(){
			var c=$.trim($(this).attr("data-ip")),t=$(this),i="";
			$.getScript("http://int.dpool.sina.com.cn/iplookup/iplookup.php?format=js&ip="+c,function(){
				if(remote_ip_info.ret==1){
					var h=remote_ip_info.country,f=remote_ip_info.province,e=remote_ip_info.city,g=" "+remote_ip_info.isp;
					i+=h;
					i+=f==e?e:f+e;
					i+=g;
				}
				else{
					i="未知IP地址";
				}
				t.replaceWith(''+i+"");
			})
		})
	}
	$(function(){vfhkyipquery()})
});

4条评论

  1. WordPress使用淘宝IP地址库的API显示评论者的位置信息
    avatar

    LZ 是jsonp吧?。。。

    • WordPress使用淘宝IP地址库的API显示评论者的位置信息
      avatar
      Lv.6 1楼-1

      是。。。。

      • WordPress使用淘宝IP地址库的API显示评论者的位置信息
        avatar

        <a href="#div-comment-120" rel="nofollow">@gkroot </a> 我跟你保证,以后再也不剧透了。。

  2. WordPress使用淘宝IP地址库的API显示评论者的位置信息
    avatar
    Lv.6 2楼

    <a href="#div-comment-121" rel="nofollow">@Soar、毅 </a>==这有毛

    发表评论

  1. 😉
  2. 😐
  3. 😡
  4. 😈
  5. 😯
  6. 😛
  7. 😳
  8. 😮
  9. 😆
  10. 💡
  11. 😀
  12. 👿
  13. 😥
  14. 😎
  15. 😕