本文介绍当使用 WP Open Social 插件时无法获取完整的 IPv6 地址造成的评论归属地显示异常。
问题分析
在使用 WP Open Social 插件时发现,若访客是通过IPv6协议访问,在评论时会获取不到完整的IPv6地址,仅只显示前缀,例如:2408,导致评论处的归属地显示造成异常。
修改建议
我们需要修改 open-social.php
文件 open_social_extend_proxy_ip
函数,注释截断 IPv6 地址的正则表达式替换操作。
修改步骤
修改后的代码
function open_social_extend_proxy_ip(){
$user_ip = sanitize_text_field($_SERVER['REMOTE_ADDR']);
if(!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) $user_ip = sanitize_text_field($_SERVER['HTTP_X_FORWARDED_FOR']);
if(!empty($_SERVER['X_FORWARDED_FOR'])) $user_ip = sanitize_text_field($_SERVER['X_FORWARDED_FOR']);
// 注释截断 IPv6 地址的正则表达式替换操作
// $user_ip = preg_replace('/[^0-9\.].*$/', '', $user_ip);
return preg_replace('/[^0-9a-f:\., ]/si', '', $user_ip);
}
验证修改
在完成上述修改后,发表一条评论,这时再检查数据库就可以看到评论者完整显示的 IP 地址。
温馨提示
本页面最后更新于:2025-04-15 01:02:08,距今已 3 天,若有链接失效或教程无效,欢迎留言反馈。
THE END
版权声明
- 本文标题:美好的明天 - 修复 使用 WP Open Social 插件后 IPv6 访客评论 IP地址获取不全
- 本文地址:https://www.wmviv.com/archives/1066.html
- 转载请保留本文标题、本文地址及链接
- 本站遵循 知识共享《署名—非商业性使用—相同方式共享 4.0 协议国际版》(CC BY-NC-SA 4.0)公共许可协议
- 部分文章来源于网络,仅作为学习展示之用,版权归原作者所有
- 若因文章多次网络流转无法追溯原作者,导致侵犯您的权益,请您 来信告知。