简单代码实现wordpress用户注册IP地址限制
来源:互联网 发布:股票大盘走势图软件 编辑:程序博客网 时间:2024/05/22 10:20
本文转自:http://mr-z.me/2017/12/wordpress_restrict_ip_reg_users.html
转载仅作备忘!
由于某种需要,在某些场景下,我们可能需要限制单一IP注册用户的个数,看 起来复杂,其实实现起来之用一小段代码即可。
思路:将每个用户注册的IP写入文本文件,新手户注册时判断IP是否包含在该文本中(或者出现的次数);
优点:不需要安装插件,复制粘贴代码即可;
function validate_reg_ip() {global $err_msg; $allow_time = 1; //每个IP允许注册的用户数$allowed = true;$ips = file_get_contents("ip.php");$times = substr_count($ips,getIp());if($times >=$allow_time) {$allowed = false;$err_msg = "该IP注册用户超过上限,无法继续注册!";}$ips = '';return $allowed;}add_filter('validate_username', 'validate_reg_ip', 10, 1);function ip_restrict_errors($errors) {global $err_msg;if ( isset( $errors->errors['invalid_username'] ) )$errors->errors['invalid_username'][0] = __( $err_msg, ' ' );return $errors;}add_filter('registration_errors', 'ip_restrict_errors');function update_reg_ip(){file_put_contents("ip.txt",getIp()."\r\n",FILE_APPEND);}add_action('user_register','update_reg_ip');function getIp(){if (getenv("HTTP_CLIENT_IP") && strcasecmp(getenv("HTTP_CLIENT_IP"), "unknown"))$ip = getenv("HTTP_CLIENT_IP");else if (getenv("HTTP_X_FORWARDED_FOR") && strcasecmp(getenv("HTTP_X_FORWARDED_FOR"), "unknown"))$ip = getenv("HTTP_X_FORWARDED_FOR");else if (getenv("REMOTE_ADDR") && strcasecmp(getenv("REMOTE_ADDR"), "unknown"))$ip = getenv("REMOTE_ADDR");else if (isset($_SERVER['REMOTE_ADDR']) && $_SERVER['REMOTE_ADDR'] && strcasecmp($_SERVER['REMOTE_ADDR'], "unknown"))$ip = $_SERVER['REMOTE_ADDR'];else$ip = "unknown";return $ip;}
效果如下图:
将上述代码添加到主题的function中即可,如有bug可在评论区反馈!
阅读全文
0 0
- 简单代码实现wordpress用户注册IP地址限制
- 04-封杀IP地址,限制用户访问
- uchome用户注册字符限制代码
- wordpress添加用户注册以及登录IP记录
- WordPress: 后台添加 用户注册时间 和登录IP 显示
- 判断ip地址,限制投票功能代码
- sql server限制用户从指定IP地址登录
- vsftpd 与TCP_wrapper 结合限制用户的ip地址登录
- IP地址限制函数
- oracle IP地址限制
- nginx限制ip地址
- java Ip地址的获取 简单代码
- ODBC + WIN32 API 访问MYSQL 数据库实现简单QQ用户注册和登录 的代码分析
- asp.Net(c#)中实现IP地址限制访问~
- 用户登录增强-根据用户名与IP地址限制用户登录
- [Oracle] 使用触发器实现IP限制用户登录
- 如何使用触发器实现IP限制用户登录
- XMPP 用户注册限制解决方案
- 代码中调用setenv更改环境变量的值。。
- C++天空之城
- C++贪吃蛇
- 将数组转变为list或者set方法之一
- 心态
- 简单代码实现wordpress用户注册IP地址限制
- 然而我今天发的是代码!
- java设计模式之单例模式
- Java中Synchronized的用法
- C++中的运算符重载
- c语言发展史-简介
- Spring Boot项目页面报错 OTS parsing error: Failed to convert WOFF 2.0
- The form contains the following error: Fingerprint has already been taken
- LUOGU P2085 最小函数值