CGI-BBS > アクセスカウンタ > CGI式カウンタ > 同時刻メール通知の回避


カレッヂ
カレッヂ


質問者 よっし  投稿日 12/20(木) 10:28:05
特定ホストからアクセスがあった場合
自分にメール通知で知らせるスクリプトを組んでます。

↓はログの中身なのですが。。。
NO5,6の様に同日19時にアクセスがあった場合ログにのみ記録し
メール通知は不要なのでメール通知のみ辞めたいのですが
どの様に変えたら良いかお知恵を貸して頂ければ幸いです。

6<>p1234-ipad03.abc.ocn.ne.jp<>2001/12/09(日) 19:06:05<>
5<>p1234-ipad03.abc.ocn.ne.jp<>2001/12/09(日) 19:05:50<>
4<>p4321-ipad01.abc.ocn.ne.jp<>2001/12/09(日) 13:46:26<>
3<>p0987-ipad03.abc.ocn.ne.jp<>2001/12/07(金) 22:58:05<>
2<>p4636-ipad01.abc.ocn.ne.jp<>2001/12/07(金) 21:06:12<>
1<>p2074-ipad02.abc.ocn.ne.jp<>2001/12/03(月) 22:32:07<>


#----------------#
#  ログ書込処理  #
#----------------#
sub regist {

        # 時間を取得
        &get_time;

        # ファイルロック
        if ($lockkey == 1) { &lock1; }
        elsif ($lockkey == 2) { &lock2; }

        # ログ展開
        open(IN,"$logfile") || &error("Log Open Error");
        @lines = <IN>;
        close(IN);

        # ログを配列
        local($flag) = 0;
        foreach (@lines) {
                ($kno,$khost,$kdate) = split(/<>/,$lines[0]);
        }

        # 番号追加
        if($no eq "") { $no = $kno + 1;}

        while ($max-1 < @lines) { pop(@lines); }

        unshift(@lines,"$no<>$host<>$date<>\n");

        open(OUT,">$logfile") || &error("Error");
        print OUT @lines;
        close(OUT);

        # ロック解除
        if (-e $lockfile) { unlink($lockfile); }

        # メール通知機能ONの場合メール送信
        if ( $mailing == 1 ) { &mail_to; }
}

#--------------#
#  時間を取得  #
#--------------#
sub get_time {
        $ENV{'TZ'} = "JST-9";
        ($sec,$min,$hour,$mday,$mon,$year,$wday) = localtime(time);
        @week = ('日','月','火','水','木','金','土');

        # 日時のフォーマット
        $date = sprintf("%04d/%02d/%02d(%s) %02d:%02d:%02d",
                        $year+1900,$mon+1,$mday,$week[$wday],$hour,$min,$sec);
}
質問者 よっし  [削除]  投稿日 12/23(日) 10:01:59
ログに秒数を記録し最終ログとの差し引きすることにより解決しました
また悩んだ際は宜しくお願い致します

このページは終了したので返信(回答)は書きこめません

Web裏技