You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

寻求适配的WordPress IP登录限制插件及PHP技术支持

自定义WordPress IP绑定登录解决方案

既然现成插件都满足不了需求,下面给你一套完整的自定义PHP代码实现功能,直接做成插件就能用:

<?php
/**
 * Plugin Name: IP Restricted Login
 * Description: Restricts users to log in only from their original registration IP
 * Version: 1.0
 * Author: Custom Dev
 */

// 记录新用户注册时的IP地址
add_action('user_register', 'save_user_registration_ip');
function save_user_registration_ip($user_id) {
    // 获取真实IP(兼容反向代理场景)
    $ip_address = $_SERVER['REMOTE_ADDR'];
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $ip_address = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } elseif (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $ip_address = $_SERVER['HTTP_CLIENT_IP'];
    }
    // 保存IP到用户元数据
    update_user_meta($user_id, 'registration_ip', $ip_address);
}

// 登录时验证IP,不匹配则拦截
add_filter('authenticate', 'restrict_login_by_ip', 10, 3);
function restrict_login_by_ip($user, $username, $password) {
    // 用户名/密码错误时直接返回,不触发IP验证
    if (!is_a($user, 'WP_User')) {
        return $user;
    }

    // 获取用户注册时的IP
    $registration_ip = get_user_meta($user->ID, 'registration_ip', true);
    if (empty($registration_ip)) {
        // 插件激活前注册的老用户默认放行,可按需修改为拦截逻辑
        return $user;
    }

    // 获取当前登录IP
    $current_ip = $_SERVER['REMOTE_ADDR'];
    if (!empty($_SERVER['HTTP_X_FORWARDED_FOR'])) {
        $current_ip = $_SERVER['HTTP_X_FORWARDED_FOR'];
    } elseif (!empty($_SERVER['HTTP_CLIENT_IP'])) {
        $current_ip = $_SERVER['HTTP_CLIENT_IP'];
    }

    // IP不匹配则拦截登录并提示
    if ($current_ip !== $registration_ip) {
        remove_action('authenticate', 'wp_authenticate_username_password', 20);
        return new WP_Error('invalid_ip', __('please try to log in with ur original ip'));
    }

    return $user;
}

功能说明

  • 新用户注册时,IP会自动存入用户元数据(键为registration_ip)
  • 登录时自动对比当前IP与注册IP,不匹配则拦截并显示指定提示
  • 兼容反向代理场景下的真实IP获取
  • 老用户(插件激活前注册)默认允许登录,可自行修改代码调整这部分逻辑

使用方法

  1. 将上述代码复制到新建文件,命名为wp-ip-login-restrict.php
  2. 上传到WordPress站点的wp-content/plugins/目录
  3. 在后台插件列表中激活该插件

内容的提问来源于stack exchange,提问作者Alkrwbmade

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.10 21:48:20