微博抖音知乎相继推出展示用户IP属地功能,微信公众平台也即将展示用户IP属地

于是想给WordPress博客留言加个IP属地功能,网上有现成的教程

米扑博客:总结分享WordPress显示评论者IP归属地、浏览器、终端设备、电信运营商 – 米扑博客 (mimvp.com)

该文章更新于2016-09-12,现在尝试也依然好用,但是IP数据库有点老旧了,于是笔者更新了一下。

下面简单介绍一下使用方法:

1、下载压缩包

请到附件下载

2、上传到主题根目录

把压缩包上传到主题的根目录,注意不是WordPress根目录,解压后的文件列表如下

useragent
├── browsers
├── flags
├── ip2c
├── ip2c-qqwry.dat
├── ip2c-text.php
└── show-useragent.php

3. 编辑 functions.php

在 php 作用域内,添加一行代码:

include("useragent/ip2c-text.php");

4、编辑xxx-comment.php 模板

各个主题模板不同,我们需要在评论者用户后面,添加显示IP归属地、浏览器图标等信息,因此需要找到评论者的位置,查找方法:F12查看元素。

在合适位置添加代码如下:

<?php 
    echo " ";echo "<span id='ua-info-text' class='comment_ua_info' style='font-size:14px;font-weight:normal;color:#aaa;'>"; 
    echo convertip(get_comment_author_ip()); 
    echo "</span>"; 
?>

5、效果优化

如需默认隐藏IP属地,则style添加样式

display:none;

footer.php添加以下代码:

<!-- comment ua-info -->
<script>
jQuery('.comment-body').hover(     
    function(){
        jQuery(this).find('span.comment_ua_info').show();
    },
    function(){
        jQuery(this).find('span.comment_ua_info').hide();
    });
jQuery('.comment-body').click(     
    function(){
        jQuery(this).find('span.comment_ua_info').show();
    });
</script>

如需一键显示/隐藏IP属地则footer.php添加以下代码:

<script>
    jQuery(".comment_show_ip").click(function(){
    if(jQuery(".comment_show_ip").text() == "显示IP属地") {
        jQuery(".comment_ua_info").show();
        jQuery(".comment_show_ip").html("隐藏IP属地");
    }
    else {
        jQuery(".comment_ua_info").hide();
        jQuery(".comment_show_ip").html("显示IP属地");
    }
});
</script>

在xxx-comment.php模板合适位置加入

<span id="comment_show_ip" class="comment_show_ip" style="color:blue; font-size:14px;float:right">显示IP属地</span>

效果图:

演示页面:https://www.jishusongshu.com/guestbook/

6、更新IP归属数据库

参考资料:纯真 IP 数据库自动更新 qqwry.dat 文件教程 – 泪雪博客 (zhangzifan.com)

方法:新建一个php文件,网络访问它,即可生成一个dat文件

<?php
// PHP 纯真 IP 地址数据库自动更新功能
$copywrite = file_get_contents("http://update.cz88.net/ip/copywrite.rar");
$qqwry = file_get_contents("http://update.cz88.net/ip/qqwry.rar");
$key = unpack("V6", $copywrite)[6];
for($i=0; $i<0x200; $i++){
	$key *= 0x805;
	$key ++;
	$key = $key & 0xFF;
	$qqwry[$i] = chr( ord($qqwry[$i]) ^ $key );
}
$qqwry = gzuncompress($qqwry);
$fp = fopen("qqwry.dat", "wb");
if($fp){
	fwrite($fp, $qqwry);
	fclose($fp);
}
?>

重命名后替换ip2c-qqwry.dat即可







文件名称:useragent.zip
适用版本:PHP
更新日期:2022-04-30
文件大小:5.79 M

点击下载

Invitation
QQ Group
1095632335

created:04/01/2020

Welcome to the Group

Use this card to join us and participate in a pleasant discussion together .

Welcome to JISHUSONGSHU Group,wish you a nice day .