admin 发表于 2026-4-4 22:19:26

DZ论坛游客组匿名用户显示IP地址归属地

DZ论坛游客组匿名用户显示IP地址归属地


要让 游客(匿名 / 未登录)回帖也显示 IP(和会员一样),核心是:DZ 默认对游客 IP 做了隐藏 / 脱敏,管理员可见但前台不显示,需要改代码取消脱敏、并让模板正常输出。

一、先确认:会员已显示 IP
后台已开:


[*]用户组 → 管理员 / 版主 → 允许查看 IP → 是
[*]界面 → 帖子内容页 → 显示发帖 IP → 是

二、游客 IP 不显示的原因
DZ 核心文件会自动隐藏游客 IP:


[*]文件:source/module/forum/forum_viewthread.php
[*]逻辑:if(!$post['authorid'])(游客 UID=0)
[*]系统自动把 IP 改成 192.168.1.x 或直接不显示

三、修改方法(2 选 1)
方法 1:改核心文件(取消游客 IP 脱敏)

[*]1.打开:source/module/forum/forum_viewthread.php
[*]2.查找:
[*]if(!$post['authorid']) {
    $post['useip'] = substr($post['useip'], 0, strrpos($post['useip'], '.')).'.x';
}3.注释 / 删除这段(或改成仅非管理员隐藏):
[*]// 注释掉:游客不再脱敏IP
// if(!$post['authorid']) {
//   $post['useip'] = substr($post['useip'], 0, strrpos($post['useip'], '.')).'.x';
// }

// 推荐:只对普通管理员隐藏,超级管理员(adminid=1)看完整IP
if(!$post['authorid']) {
    if($_G['adminid'] != 1) {
      $post['useip'] = preg_replace('/\.\d+$/', '.x', $post['useip']);
    }
}4.保存、上传、清空论坛缓存

页: [1]
查看完整版本: DZ论坛游客组匿名用户显示IP地址归属地