为你的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
THE END
分享
二维码
打赏
海报
为你的WordPress站点博客添加评论区显示用户IP地址
序言: 之前看到有相关法规需要显示用户ip地址,虽然我这是一个小站点,但是还是萌生了增加这个功能的想法。 功能实现首先感谢:广然笔记 主体代码是他给的。 基……
<<上一篇
下一篇>>
文章目录
关闭
目 录