首页 诗词 字典 板报 句子 名言 友答 励志 学校 网站地图
当前位置: 首页 > 教程频道 > 网站开发 > ASP >

限制IP投票次数,该怎么处理

2012-05-03 
限制IP投票次数如何限制一个IP地址一天只能投10票?大家能否帮忙写段代码[解决办法]简单说下限制投票。建立

限制IP投票次数
如何限制一个IP地址一天只能投10票?大家能否帮忙写段代码

[解决办法]

简单说下限制投票。
建立一个IP日志表,用来记录IP地址的。
有用户投票时,记录下IP地址,搜索当天时间该IP投票次数。
如果当天次数小于10,就可以投票。投票完成后就把对应该IP的次数加1。
如果当天次数大于等于10,就不让投票了。


GetIP函数是从网上搜来的,自己验证下对错。

VBScript code
'**************************************************'函数名:GetIP'作 用:取得正确的IP'返回值:IP字符串'**************************************************Public Function GetIP()    Dim strIPAddr    If Request.ServerVariables("HTTP_X_FORWARDED_FOR") = "" Or InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), "unknown") > 0 Then     strIPAddr = Request.ServerVariables("REMOTE_ADDR")    ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",") > 0 Then     strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ",")-1)    ElseIf InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";") > 0 Then     strIPAddr = Mid(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), 1, InStr(Request.ServerVariables("HTTP_X_FORWARDED_FOR"), ";")-1)   Else     strIPAddr = Request.ServerVariables("HTTP_X_FORWARDED_FOR")    End If    getIP = Checkstr(Trim(Mid(strIPAddr, 1, 30)))End FunctionPublic Function Checkstr(Str)   If Isnull(Str) Then    CheckStr = ""    Exit Function    End If   Str = Replace(Str,Chr(0),"")   CheckStr = Replace(Str,"'","''")End Function
[解决办法]
VBScript code
Dim countcount = conn.Execute("select count(*) from vote where IP='" & GetIP() & "' and [Date]='" & date() & "'")(0)If count > 10 Then   Response.Write "不能投票"   Response.EndElse   ' 执行投票   ' 对IP进行记录   If count = 0 Then      conn.Execute("insert into vote(IP,[Date]....) value(...)")   Else      conn.Execute("update vote_from set .... where IP='' and [date]=...")   End IfEnd If 

热点排行