Cet article présente principalement l'exemple de création d'une fonction de détection IP de connexion anormale en PHP. Les amis intéressés peuvent s'y référer. J'espère que cela sera utile à tout le monde.
Utiliser l'implémentation de la traversée de la base de données de requête de fonction
/** * 不在常用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; }
Remarque : convient à tous les frameworks, get_client_ip () est la fonction d'acquisition IP.
Fragment de fonction 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; }
Ce qui précède est l'intégralité du contenu de cet article, j'espère qu'il sera utile à l'étude de chacun.
Recommandations associées :
php Comment supprimer rapidement les doublons des éléments d'un tableau
Méthode PHP pour imprimer des arbres binaires en zigzag
Ce qui précède est le contenu détaillé de. pour plus d'informations, suivez d'autres articles connexes sur le site Web de PHP en chinois!