检测到您启用了Adblock等屏蔽广告扩展,导致正常的内容图片无法显示,为了不影响阅读体验,建议您将www.xiaoz.me加入白名单。

利用淘宝IP接口一键查询WordPress后台访客IP

WordPress后台评论功能会记录每一位访客IP地址,但是如果我们希望获取访客IP的具体归属地,虽然可以通过第三方IP查询工具手动输入IP查询,但是这样略显不便,于是小z博客利用淘宝IP接口对WordPress后台进行了略微的改动,使其可以一键查询访客IP的归属地。

一、引入Jquery库,并加载javascript函数

由于查询的时候使用的Jquery Ajax Get方式提交,需要依赖Jquery的支持,但是似乎wordpress后台没有引入Jquery库,没关系我们手动引入即可,修改/wp-admin/admin-footer.php这个PHP文件在最后body之前引入jquery文件,并加载相关函数。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
<script src = "https://lib.sinaapp.com/js/jquery/1.7.2/jquery.min.js"></script>
<script>
	function ipquery(ip,num) {
	var ip = ip;
 
	$.get('./ip-query.php',{ip:ip},function(data,status){
			var address = new Function('return' + data)();
			var guojia = address['data']['country'];
			var sheng = address['data']['region'];
			var shi = address['data']['city'];
			var isp = address['data']['isp'];
			var ip_add = guojia + ' ' + sheng + ' ' + shi + ' ' + isp;
			num = '#' + num;
			$(num).html(ip_add);
		});
	}
</script>

onloadjs

二、添加ip-query接口查询文件

将下面的代码另存为ip-query.php并上传到/wp-admin/目录下,待会儿查询IP需要使用此接口。

1
2
3
4
5
6
7
8
9
10
11
12
13
14
15
16
17
18
<?php
	$ip = $_GET['ip'];			//获取IP
	//通过淘宝IP接口查询IP归属地
	$get_ipquery = "http://ip.taobao.com//service/getIpInfo.php?ip=$ip";
 
	//CURL
	$ch = curl_init();
	curl_setopt($ch,CURLOPT_URL,$get_ipquery);
	curl_setopt($ch,CURLOPT_RETURNTRANSFER,1);
	curl_setopt($ch,CURLOPT_HEADER,0);
 
	$content = curl_exec($ch);
 
	curl_close($ch);
 
 
	echo $content;
?>

三、修改wordpress后台功能

找到wp-admin/includes/class-wp-comments-list-table.php文件,使用文本工具打开并搜索关键词:get_comment_author_IP,然后

1
printf( '<a href="%s">%s</a>', esc_url( $author_ip_url ), $author_ip );

找到这一行代码之后添加以下代码:

1
2
3
$num = 'abc'.rand(1000,9999);
				echo " | <a href = 'javascript:;' onclick = 'return ipquery(\"$author_ip\",\"$num\");'>查询</a>";
				echo "<div id ='$num'></div>";

最后保存并覆盖源文件,注意编码格式为UTF-8,否则会乱码,修改前请将源文件做备份。

query626

四、查看效果

最后打开wordpress后台评论,会多出一个查询按钮的功能,点击一下查询按钮,就可以显示访客IP归属地啦,就是这么简单,若有不会的可以留言咨询。

ip_query

五、总结

需要注意的几个地方就是wp-admin目录下的文件比较多,别修改错了,再次强调修改前务必备份源文件,这个方法的不足之处就是wordpress后台升级后可能被覆盖,有空的时候可以考虑写成插件方式。

14 Comments

萌萌哒的Ops进行回复 取消回复

电子邮件地址不会被公开。 必填项已用*标注