我们先新建一个ACCESS数据库
内容为
表名:zai
字段为
1.ip
2.time
建立一个文件为index.asp
然后就如下程序!
%
'===================================================================================================
'
'******************** 冰翎在线人数统计程序 V2.0 ******************************
'
' 本站程序由 『冰翎工作室』--冰淇淋剑客 独立制作!请尊重本人的劳动成果
'
' 『冰翎工作室』─━╃→用实力打造个性
'
'* 作者:冰淇淋剑客
'* 网站:http://www.blbcn.com
'* 电子邮件:bingqilinjianke@163.com
'* QQ:68156987
'* 住址:江苏无锡
'******************************************************************************
'
' 版权所有·抄袭挪用必究
'
'===================================================================================================
'---------定义变量
dim rs
dim ip
dim timeout
dim x
dim conn
dim dbpath
'---------定义变量结束
'---------建议数据库链接
set conn=server.createobject("adodb.connection")
DBPath = Server.MapPath("zai.mdb")
conn.Open "driver={Microsoft Access Driver (*.mdb)};dbq=" DBPath
'---------建立数据库链接完成
'---------新建数据库RS对象
set rs = server.createobject("adodb.recordset")
'---------建立数据库RS对象完成
'---------读取客户端IP地址
ip = Request.ServerVariables("HTTP_X_FORWARDED_FOR") '若是对方使用的是代理服务器上网的话,用Request.ServerVariables("HTTP_X_FORWARDED_FOR")可以得到对方的真实IP,若对方不是通过代理服务器上网的话,则IP的值为空
If ip = "" Then ip = Request.ServerVariables("REMOTE_ADDR") '如果IP的值为空,则得到他的本地客户端地址
'---------IP读取完毕
'---------读出数据库内近20分钟所加入的新内容数,group by ip-表IP值相同的记作1
sql="select ip from zai where time >= dateadd('n',-20,now()) group by ip"
rs.Open sql,conn,1,1
zai=rs.RecordCount
rs.Close
'---------得到在线人数值
'---------查看数据库中是否已经有相同的值,没有则 x="yes"有则x="no"
sql="select ip from zai where ip='" ip "'"
rs.Open sql,conn,1,1
if rs.eof and rs.bof then
x="yes"
else
x="no"
end if
rs.close
'--------判断完毕
'--------如果数据库中没有相同的值则加入一个新值
if x="yes" then' 如果没有这个IP则增加一条记录
sql="select top 1 * from zai"
rs.Open sql,conn,1,3
rs.AddNew
rs("ip")=ip
rs("time")=now()
rs.update
rs.close
else '如果有这个IP则把时间改为现在的时间
sql="select * from zai where ip='" ip "'"
rs.Open sql,conn,1,3
rs("time")=now()
rs.update
rs.close
end if
'--------判断加入完毕
'--------删除20分钟以前所加入的值
timeout = dateadd("n", -20, now())
sql="delete * from zai where time #" timeout "#"
conn.Execute sql
'--------删除完毕
'--------关闭数据对象
set rs=nothing
conn.Close
set conn=nothing
%>
document.write("共%=zai%>人在线")
OK!
完成了!
您可能感兴趣的文章:- 统计有多少行JS代码和ASP代码
- ASP程序代码执行时间统计类
- asp论坛在线人数统计研究
- 实现ASP程序执行时间统计类的代码
- asp实现一个统计当前在线用户的解决方案
- ASP访问数量统计代码
- asp.net aspnetpager分页统计时与实际不符的解决办法
- asp.net中调用Office来制作3D统计图的实例代码
- ASP.net中网站访问量统计方法代码
- php模仿asp Application对象在线人数统计实现方法
- 四步完成asp网页设计流量统计