PHPを使用した異常ログインIP検知機能の作成例

墨辰丷
リリース: 2023-03-28 15:00:01
オリジナル
1731 人が閲覧しました

この記事では主に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 = &#39;<font color="blue"&#39;.">登录IP:".$ip."</font>";
  }else{
    //不同则记数这个ip地址数量
    $count =  M(&#39;log&#39;)->where("name=&#39;{$name}&#39; AND ip=&#39;{$ip}&#39;")->count();
    //如果超过一定数量则是正常ip否则为异常返回字符串
    if($count > 10){
      $str = &#39;<font color="blue"&#39;.">登录IP:".$ip."</font>";
    }else{
      $str = &#39;<font color="red"&#39;.">异常IP:".$ip."</font>";
    }
  }

  return $str;

}
ログイン後にコピー

注: すべてのフレームワークに適しており、get_client_ip() は IP 取得関数です。

get_client_ip 関数フラグメント:

function get_client_ip() {
  if(getenv(&#39;HTTP_CLIENT_IP&#39;) && strcasecmp(getenv(&#39;HTTP_CLIENT_IP&#39;), &#39;unknown&#39;)) {
    $ip = getenv(&#39;HTTP_CLIENT_IP&#39;);
  } elseif(getenv(&#39;HTTP_X_FORWARDED_FOR&#39;) && strcasecmp(getenv(&#39;HTTP_X_FORWARDED_FOR&#39;), &#39;unknown&#39;)) {
    $ip = getenv(&#39;HTTP_X_FORWARDED_FOR&#39;);
  } elseif(getenv(&#39;REMOTE_ADDR&#39;) && strcasecmp(getenv(&#39;REMOTE_ADDR&#39;), &#39;unknown&#39;)) {
    $ip = getenv(&#39;REMOTE_ADDR&#39;);
  } else{
    $ip = $_SERVER[&#39;REMOTE_ADDR&#39;];
  }
  return $ip;
}
ログイン後にコピー

上記がこの記事の全内容です。皆様の学習に役立つことを願っています。


関連する推奨事項:

php配列要素を素早く重複排除するメソッド

バイナリツリーをジグザグ順序で出力するPHPメソッド

phpの設定方法厳重な管理を行っておりますタイムセッションの詳しい説明

以上がPHPを使用した異常ログインIP検知機能の作成例の詳細内容です。詳細については、PHP 中国語 Web サイトの他の関連記事を参照してください。

関連ラベル:
ソース:php.cn
このウェブサイトの声明
この記事の内容はネチズンが自主的に寄稿したものであり、著作権は原著者に帰属します。このサイトは、それに相当する法的責任を負いません。盗作または侵害の疑いのあるコンテンツを見つけた場合は、admin@php.cn までご連絡ください。
最新の問題
人気のチュートリアル
詳細>
最新のダウンロード
詳細>
ウェブエフェクト
公式サイト
サイト素材
フロントエンドテンプレート
私たちについて 免責事項 Sitemap
PHP中国語ウェブサイト:福祉オンライン PHP トレーニング,PHP 学習者の迅速な成長を支援します!