zoukankan      html  css  js  c++  java
  • 网站来访者IP及地址记录

    将此段代码放入网站的母版页或者header的用户控件中。

            private void AccessRecord()
            {
                string ip = Request.UserHostAddress;
                string ipDataPath = Server.MapPath("QQWry.Dat");//纯真ip数据库http://www.cz88.net        
                Fireicesion.WebTools.IpAddressSearch ipSearch = new Fireicesion.WebTools.IpAddressSearch(ipDataPath);//前一篇随笔中的根据ip获取地址
                string address = ipSearch.GetAddressWithIP(ip);
                if (CheckRecord(ip))
                {
                    string sql = "insert into AccessRecord (ip,address,recordtime) values('" + ip + "','" + address + "','" + DateTime.Now.ToString() + "')";
                    DB.Insert(sql);
                }
            }
    
    
            /// <summary>
            /// 上次访问时间,true可记录,false不记录
            /// </summary>
            /// <param name="ip"></param>
            /// <returns></returns>
            private bool CheckRecord(string ip)
            {
                string sql = "select * from AccessRecord where ip='" + ip + "' order by RecordTime desc limit 0,1";
                DataTable dt = DB.GetDataTable(sql);
                if (dt.Rows.Count == 0)//没有找到记录,此IP未曾访问过
                    return true;
                else
                {
                    DateTime lastTime = Convert.ToDateTime(dt.Rows[0]["RecordTime"]);
                    DateTime now = DateTime.Now;
                    TimeSpan timeSpan = new TimeSpan(0, 30, 0);//半个小时内访问不重复记录
                    if (lastTime.Add(timeSpan).CompareTo(now) == -1)
                    {
                        return true;
                    }
                    return false;
                }
            }
    
    

    数据库表(MySql格式的)

    CREATE TABLE `accessrecord` (
      `Id` int(11) NOT NULL AUTO_INCREMENT,
      `Ip` varchar(80) DEFAULT NULL,
      `Address` varchar(100) DEFAULT NULL,
      `Recordtime` datetime DEFAULT '2000-01-01 00:00:00',
      PRIMARY KEY (`Id`)
    ) ENGINE=InnoDB AUTO_INCREMENT=58 DEFAULT CHARSET=utf8;
    
  • 相关阅读:
    [YTU]_2911(我想放假)
    [YTU]_2907(类重载实现矩阵加法)
    [YTU]_2617(B C++时间类的运算符重载)
    [YTU]_2633( P3 数钱是件愉快的事)
    [YTU]_2444(C++习题 对象转换)
    [YTU]_2535( C++复数运算符重载(+与<<))
    [YTU]_2354 (实现复数类中的加运算符重载【C++运算符重载】)
    集训总结DAY.1(18.5.22)——KMP
    爬爬爬山
    P3803 【模板】多项式乘法(FFT)
  • 原文地址:https://www.cnblogs.com/fireicesion/p/1781524.html
Copyright © 2011-2022 走看看