一个倒票的程序需要大家帮忙了,程序是匿名投票的,我想限制一IP(都是固定IP机房内的)在5分钟之内只能访问5次toupiao.aspx,如何实现呢? 

解决方案 »

  1.   

    1)使用DB来保存访问信息。
    2)使用Cache来保存信息。
    3)使用Application来保存信息。这跟算点击量实际是大同小异。在提交时交验访问信息就可。
      

  2.   

    兄弟,能具体一点么,我是个新手,谢谢,下面是我写的代码,用了cookie,没有DB,这个只能控制1分钟内访问1次,我要是想改成1分钟内访问5次怎么能改一下,谢谢或者有什么更简单的方法
    //判断指定的IP是否已投过票了,如果已经投过了,则弹出提示对话框
            string UserIP = Request.UserHostAddress.ToString();
          
            int VoteID = Convert.ToInt32(RadioButtonList1.SelectedIndex.ToString())+1;
            HttpCookie oldCookie=Request.Cookies["userIP"];
            if (oldCookie == null)
            {
                
                //象数据库里面插入所选的答案
                UpdateVote(VoteID);
                Response.Write("<script>alert('投票成功,谢谢您的参与!')</script>");
                //定义新的Cookie对象
                HttpCookie newCookie = new HttpCookie("userIP");
                //newCookie.Expires = DateTime.MaxValue;
                newCookie.Expires = DateTime.Now.AddMinutes(1);
                //添加新的Cookie变量IPaddress,值为UserIP
                newCookie.Values.Add("IPaddress", UserIP);
                //将变量写入Cookie文件中
                Response.AppendCookie(newCookie);
                return;
            }
            else
            {
                string userIP = oldCookie.Values["IPaddress"];
                if (UserIP.Trim() == userIP.Trim())
                {
                 
                        Response.Write("<script>alert('一个IP地址一个月内只能投一次票,谢谢您的参与!');history.go(-1);</script>");
                        return;
                              }
                else
                {
                    HttpCookie newCookie = new HttpCookie("userIP");
                    newCookie.Values.Add("IPaddress", UserIP);
                    //newCookie.Expires = DateTime.MaxValue;
                    newCookie.Expires = DateTime.Now.AddMinutes(1);
                    Response.AppendCookie(newCookie);
                    UpdateVote(VoteID);
                    Response.Write("<script>alert('投票成功,谢谢您的参与!')</script>");
                    return;
                }
            
            }
      

  3.   

    投票时数据库保存ip信息和投票时间
    在保存投票时,判断该ip从该时刻起的5分钟内投票次数,超过5次,返回错误,否则保存投票 
      

  4.   

    在cookie里把时间加进去~