この記事では主に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の設定方法厳重な管理を行っておりますタイムセッションの詳しい説明
以上がPHPを使用した異常ログインIP検知機能の作成例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。