为你的WordPress站点博客添加评论区显示用户IP地址
序言:
之前看到有相关法规需要显示用户ip地址,虽然我这是一个小站点,但是还是萌生了增加这个功能的想法。
功能实现首先感谢:广然笔记 主体代码是他给的。
基本思路
通过WordPress的
get_comment_author_ip()
获取到用户的ip地址,然后利用腾讯地图开放平台查询ip归属地,然后显示在站点前端。
效果演示
功能实现
首先在站点目录新建get_user_address.php文件,然后贴入以下代码:
<?php
function province($user_ip)
{
$url = "https://apis.map.qq.com/ws/location/v1/ip?key=(这里输入你的key)&ip=".$user_ip;
$UserAgent = 'Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; .NET CLR 3.0.04506; .NET CLR 3.5.21022; .NET CLR 1.0.3705; .NET CLR 1.1.4322)';
$curl = curl_init();
curl_setopt($curl, CURLOPT_URL, $url);
curl_setopt($curl, CURLOPT_HEADER, 0);
curl_setopt($curl, CURLOPT_RETURNTRANSFER, 1);
curl_setopt($curl, CURLOPT_SSL_VERIFYPEER, false);
curl_setopt($curl, CURLOPT_SSL_VERIFYHOST, false);
curl_setopt($curl, CURLOPT_ENCODING, '');
curl_setopt($curl, CURLOPT_USERAGENT, $UserAgent);
curl_setopt($curl, CURLOPT_FOLLOWLOCATION, 1);
$data = curl_exec($curl);
$data = json_decode($data,true);
$result = array_column($data, 'ad_info');
$resulta = array_column($result, 'province');
$province = array_shift($resulta);
return $province;
}
?>
方法调用
在主题文件目录下的functions.php文件最后一行填入以下代码:
include("get_user_address.php");
评论区显示
在主题的评论文件中填入以下代码,建议填在时间代码后方:
·<a style='color:#07C160'><?php echo province(get_comment_author_ip()); ?></a>
然后你就能看到评论区的ip地址了。
关于CDN加速
如果使用了CDN加速,可能会访问CDN的地址,解决办法可以在wp-config.php添加以下代码:
if(isset($_SERVER['HTTP_X_FORWARDED_FOR']))
{
$list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
$_SERVER['REMOTE_ADDR'] = $list[0];
}
然后就可以看到真实ip地址了。
本文感谢广然笔记的大力支持
为你的WordPress站点博客添加评论区显示用户IP地址
https://xsunhua.cn/152.html



怡然一记
柚子
怡然一记@柚子
柚子@怡然一记
怡然一记@柚子
柚子
Guangran
小艾同学