#72003/12/18 0:50:13
我简单介绍一下代码:
新建一个表lockip,字段1为lockip,varchar型,字段2为locktime,字段属性smalldatetime
建立好登录表单,代码:
<%session("logintimes")=0%>
<form method="post" action="" name="theform">
用户名:<input name="admin_user" type="text" size="28">
密 码:<input name="admin_pwd" type="password" size="28">
<input type="submit" name="Submit" value="登 录">
<INPUT type=hidden value=CheckLogin name=method>
</form>
验证代码:
<%
'用户登录IP
ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR")
if ip = "" then ip = Request.ServerVariables("REMOTE_ADDR")
'从数据表lockip中删除超过2小时被封的IP
conn.execute("delete from lockip where DateDiff(""hh"",locktime,getdate())>2")
'session("logintimes")累加三次后,将当前用户的IP写进lockip数据表中
if session("logintimes")=3 then conn.execute("insert into lockip(lockip,locktime) values ('"&ip&"','"&now()&"')")
'验证登录IP
set rsd=conn.execute("Select * from lockip where lockip='"&ip&"'")
if not (rsd.eof and rsd.bof) then
response.write "你非法登录系统,已被取消登录权限!"
else
admin_user=trim(request.form("admin_user"))
admin_pwd=trim(request.form("admin_pwd"))
'这里与系统管理员的数据表进行验证,我不多加介绍了。
'..................
'关键是在系统表中密码字段pwd与admin_pwd验证时,如果密码错误,
'就设session("logintimes")=session("logintimes")+1,
'这点相当重要。累计三次密码错误就记录IP了。
end if
rsd.close
set rsd=nothing
%>
有问题再留言我吧。 :)
PS:不好意思,本来想用论坛的代码UBB格式用的,但发现很长的一段代码在[code]中显示后面字符被截取了,只能选择醒目点的颜色了。