这里有新鲜出炉的 PHP 设计模式,程序狗速度看过来!
PHP(外文名: Hypertext Preprocessor,中文名:"超文本预处理器")是一种通用开源脚本语言。语法吸收了 C 语言、Java 和 Perl 的特点,入门门槛较低,易于学习,使用广泛,主要适用于 web 开发领域。PHP 的文件后缀名为 php。
下面小编就为大家带来一篇 PHP 制作登录异常 ip 检测功能的实例代码。小编觉得挺不错的,现在就分享给大家,也给大家做个参考。一起跟随小编过来看看吧
使用函数查询数据库遍历实现
- /**
- * 不在常用ip地址登录返回描红信息
- * @param string $ip ip地址
- * @param string $name 用户名
- * @return string
- */
- function errorIp($ip, $name) {
- $nowip = get_client_ip();
- //判断ip和当前ip是否相同,不同则查询数据库对比
- if ($ip == $nowip) {
- //相同直接返回字符串
- $str = '<font color="blue"'.">登录IP:".$ip."</font>";
- } else {
- //不同则记数这个ip地址数量
- $count = M('log') - >where("name='{$name}' AND ip='{$ip}'") - >count();
- //如果超过一定数量则是正常ip否则为异常返回字符串
- if ($count > 10) {
- $str = '<font color="blue"'.">登录IP:".$ip."</font>";
- } else {
- $str = '<font color="red"'.">异常IP:".$ip."</font>";
- }
- }
- return $str;
- }
注释:适合所有框架使用,get_client_ip() 是 ip 获取函数。
get_client_ip 函数片段:
- function get_client_ip() {
- if(getenv('HTTP_CLIENT_IP') && strcasecmp(getenv('HTTP_CLIENT_IP'), 'unknown')) {
- $ip = getenv('HTTP_CLIENT_IP');
- } elseif(getenv('HTTP_X_FORWARDED_FOR') && strcasecmp(getenv('HTTP_X_FORWARDED_FOR'), 'unknown')) {
- $ip = getenv('HTTP_X_FORWARDED_FOR');
- } elseif(getenv('REMOTE_ADDR') && strcasecmp(getenv('REMOTE_ADDR'), 'unknown')) {
- $ip = getenv('REMOTE_ADDR');
- } else{
- $ip = $_SERVER['REMOTE_ADDR'];
- }
- return $ip;
- }
以上这篇 PHP 制作登录异常 ip 检测功能的实例代码就是小编分享给大家的全部内容了,希望能给大家一个参考,也希望大家多多支持 PHPERZ。
来源: http://www.phperz.com/article/17/0804/341151.html