#热门
WordPress后台实现显示注册用户IP和最近登录IP的教程

2023-11-05 0 482

wordpress后台用户页面显示出用户注册时的ip地址和最近登录时ip,这个功能还是非常重要的,比如上次博主博客遇到恶意刷积分,10分钟被邀请注册了几十个垃圾账号,来获取本站积分,如果能够在当时显示出注册时的IP地址,就能够及时的封禁IP!不至于花时间去查网站日志。

代码教程

1、创建一个新的插件目录并创建一个新的 PHP 文件,例如 user-ip-details.php

2、在 PHP 文件开头添加插件的基本信息,例如插件名称、版本等等。示例代码如下:

/**
 * Plugin Name: User IP Details
 * Plugin URI: https://www.aaym.net/6239.html
 * Description: 用于在wordpress后台用户页面显示出用户注册时的ip地址,和能够显示出最近登录时的ip地址
 * Version: 1.0.5
 * Author:www.aaym.net
 * Author URI: https://www.aaym.net
 * Text Domain: user-ip-details
 * Domain Path: /languages
 */

3、在 user-ip-details.php 文件中添加以下代码:

// Add custom columns to the users table.
add_filter( 'manage_users_columns', 'user_ip_details_add_columns' );
function user_ip_details_add_columns( $columns ) {
    $columns['user_ip_address'] = 'IP地址';
    return $columns;
}

// Populate custom columns with data.
add_action( 'manage_users_custom_column', 'user_ip_details_populate_columns', 10, 3 );
function user_ip_details_populate_columns( $value, $column_name, $user_id ) {
    if ( 'user_ip_address' === $column_name ) {
        $registration_ip = get_user_meta( $user_id, 'registration_ip', true );
        $last_login_ip   = get_user_meta( $user_id, 'last_login_ip', true );

        if ( empty( $registration_ip ) && empty( $last_login_ip ) ) {
            return 'N/A';
        }

        if ( ! empty( $registration_ip ) && ! empty( $last_login_ip ) ) {
            $ip_details = sprintf(
                '<strong>注册IP:</strong> %s<br><strong>最后登录IP:</strong> %s',
                $registration_ip,
                $last_login_ip
            );
        } elseif ( ! empty( $registration_ip ) ) {
            $ip_details = $registration_ip;
        } else {
            $ip_details = $last_login_ip;
        }

        return $ip_details;
    }

    return $value;
}

// Save registration IP and last login IP when a user registers or logs in.
add_action( 'user_register', 'user_ip_details_save_registration_ip' );
add_action( 'wp_login', 'user_ip_details_save_last_login_ip', 10, 2 );
function user_ip_details_save_registration_ip( $user_id ) {
    if ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
        update_user_meta( $user_id, 'registration_ip', $_SERVER['REMOTE_ADDR'] );
    }
}
function user_ip_details_save_last_login_ip( $user_login, $user ) {
    if ( isset( $_SERVER['REMOTE_ADDR'] ) ) {
        update_user_meta( $user->ID, 'last_login_ip', $_SERVER['REMOTE_ADDR'] );
    }
}

4、将 PHP 文件上传到插件目录中,然后在 WordPress 后台启用插件。现在,当您查看用户管理页面时,您将可以看到一个新的 IP 地址列,其中包含每个新用户注册时使用的 IP 地址和最近登录时的IP地址。(别忘了在PHP开头添加<?php哟)

WordPress后台实现显示注册用户IP和最近登录IP的教程

拓展

如果你的网站有用 CDN 的话,记得在wp-config.php里加上下面的代码:

if(isset($_SERVER['HTTP_X_FORWARDED_FOR'])) 
{
    $list = explode(',',$_SERVER['HTTP_X_FORWARDED_FOR']);
    $_SERVER['REMOTE_ADDR'] = $list[0];
}

否则,都是获取不到用户真实ip地址的。

收藏 (0) 打赏

感谢您的支持,我会继续努力的!

打开微信/支付宝/QQ扫一扫,即可进行扫码打赏哦,分享从这里开始,精彩与您同在
点赞 (0)

1. 本站所有资源来源于用户上传和网络,因此不包含技术服务请大家谅解!如有侵权请邮件联系客服!305582964@qq.com
2. 本站不保证所提供下载的资源的准确性、安全性和完整性,资源仅供下载学习之用!如有链接无法下载、失效或广告,请联系客服处理,有奖励!
3. 您必须在下载后的24个小时之内,从您的电脑中彻底删除上述内容资源!如用于商业或者非法用途,与本站无关,一切后果请用户自负!
4. 如果您也有好的资源或教程,您可以投稿发布,成功分享后有U点奖励和额外收入!

静鱼客栈 学习中心 WordPress后台实现显示注册用户IP和最近登录IP的教程 https://www.52jyu.cn/25303.html

静鱼客栈的帅逼站长~

常见问题
  • 本站所有资源版权均属于原作者所有,这里所提供资源均只能用于参考学习用,请勿直接商用。若由于商用引起版权纠纷,一切责任均由使用者承担。更多说明请参考 VIP贵宾介绍。
查看详情
  • 最常见的情况是下载不完整: 可对比下载完压缩包的与网盘上的容量,若小于网盘提示的容量则是这个原因。这是浏览器没有下载完整造成的,可以重新进行下载即可~
查看详情

相关文章

发表评论
暂无评论
静鱼客栈-站长

为您解决烦忧 - 专业服务 看到消息会进行回复