ASP.NET中网站访问量统计方法
一、建立一个数据表IPStat用于存放用户信息
我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Src)和登录时间(IP_DateTime),些表的信息本人只保存一天的信息,如果要统计每个月的信息则要保存一个月。因为我不太懂对数据日志的操作,所以创建此表,所以说我笨吧,哈哈。
二、在Global.asax中获取用户信息
在Global.asax的Session_Start即新会话启用时获取有关的信息,同时在这里实现在线人数、访问总人数的增量统计,代码如下:
void Session_Start(object sender, EventArgs e)
{
//获取访问者的IP
string ipAddress = Request.ServerVariables["REMOTE_ADDR"];
//获取访问者的来源
string ipSrc;
//判断是否从搜索引擎导航过来的
if (Request.UrlReferrer == null)
{
ipSrc = "";
}
else
{
//获取来源地址
ipSrc = Request.UrlReferrer.ToString();
}
//获取访问时间
DateTime ipDatetime = DateTime.Now;
//保存IP信息到数据库中
IPControl cont = new IPControl();
cont.AddIP(ipAddress, ipSrc, ipDatetime);
//获取用户访问的页面
string pageurl = Request.Url.ToString();
//判断访问的是否是默认页
if (pageurl.EndsWith("IPStat.aspx"))
{
//锁定变量
Application.Lock();
//为页面访问量+1
Application["StatCount"] = int.Parse(Application["StatCount"].ToString()) + 1;
//解锁
Application.UnLock();
}
//锁定变量
Session.Timeout = 10; //设定超时为10分钟
Application.Lock();
Application["countSession"] = Convert.ToInt32(Application["countSession"]) + 1;//访问总人数+1
Application["onlineWhx"] = (int)Application["onlineWhx"] + 1; //在线人数加+1
Session["login_name"] = null;
//解锁
Application.UnLock();
}
提醒一句,别忘了下面的代码,以实现在用户离线时,将在线人数减去1.
void Session_End(object sender, EventArgs e)
{
// 在会话结束时运行的代码。
// 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为 InProc 时,才会引发 Session_End 事件。如果会话模式设置为 StateServer
// 或 SQLServer,则不会引发该事件。
//锁定变量
Application.Lock();
Application["onlineWhx"] = (int)Application["onlineWhx"] - 1; //在线人数减-1
Session["login_name"] = null;
//解锁
Application.UnLock();
}
三、将以上有关信息保存到数据库IPStat
创建了一个获取IP数据信息的类IPControl(),用来实现对数据库IPStat数据的操作,关于IPControl()类的内容,因为它是C#中对数据库的操作,以解Sql server 数据库,就能看懂它,为了实现将用户IP信息存入数据库,在上面代码中对IPControl()进行调用
//保存IP信息到数据库中
IPControl cont = new IPControl();
cont.AddIP(ipAddress, ipSrc, ipDatetime);
参数ipAddress为用户IP,ipSrc为用户来源, ipDatetime为用户进入时间。
四、创建定时器,定时操作有关数据
对以上IPSta数据库的数据,需要创建一个或者几个定时器,
并在每天晚上24时前的10秒钟内统计一天的流量,然后将其删除,把统计结果保存到另一个数据表中,供页面显示昨日访问量是调用。
转载于:https://www.cnblogs.com/zhengguangITelite/archive/2012/05/30/2525952.html
ASP.NET中网站访问量统计方法相关推荐
- 如何实现ASP.NET中网站访问量的统计
下面介绍如何进行ASP.NET中网站访问量的统计. 一.建立一个数据表IPStat用于存放用户信息 我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Sr ...
- ASP.NET中在线用户统计
天极论坛 统计在线用户的作用不言而喻,就是为了网站管理者可以知道当前用户的多少,然后根据用户数量来观察服务器或者程序的性能,从而可以直观的了解到网站的吸引力或者网站程序的效率.现在,我们就介绍一个简单 ...
- 浅谈在ASP.NET中数据有效性校验的方法
作者:未知 作为一名程序员,一定要对自己编写的程序的健壮性负责,因此数据的校验无论在商业逻辑还是系统实现都是必不可少的部分. 我这里总结了一种自认为比较不错的asp.net(C#)的数据校验方法,如大 ...
- asp.net中防止攻击的方法
你应该在程序中验证所有的不信任输入.你应该假定所有的用户输入都是非法的.用户可以在应用程序中提供表单字段,查询字串,客户端cookies和浏览器环境值比如用户代理字串和IP地址等. 弱输入校验通常为注 ...
- 网站访问量统计实现.
通过用户对网站的访问,来统计该网站的总访问量.实现起来非常简单.把每一次访问的数累加即可.由于数据 更新频繁,所以数据存储在文本文件中.每次更新其中的文本文件数据即可. 然后把数字替换成相应图片.不知 ...
- c语言网络在线人数统计,教你用ASP程序实现网站在线人数统计
欢迎来到小编的文章进行学习阅读,想必大家又有很多问题吧,在这里会有你想要收获的答案,请大家慢慢学习吧!计算机编程语言 在浏览网页的时侯,常常可以看见一些"当前网站上的人数是XXX人" ...
- mysql中如何统计数据_mysql中的数据统计方法
1 数据统计 使用COUNT()函数计算表中的数据数目(比如emp表中的员工数目) mysql> select count(*) from emp; 查询结果如下: +----------+ | ...
- 删除bing搜索中网站页面的方法
通过删除存在法律问题的内容或过时的内容,改善网站在必应搜索中的显示效果. 搜索结果中显示的页面是断开的链接(404 – 未找到). 出现在搜索结果中的网页,如果网页的缓存版本中包含过期内容. 注意 如 ...
- Python中list, ndarry数据中元素的统计方法
通过不同方式获取列表,数组中元素个数的统计,count()或者Counter np.unique() # 获取不同元素个数 list.count(i) # 获取指定元素在列表或数组中的个数 from ...
最新文章
- 点赞模块设计:Redis缓存 + 定时写入数据库实现高性能点赞功能
- 用DriverStudio开发USB驱动程序
- Objective-C 中Socket常用转换机制(NSData,NSString,int,Uint8,Uint16,Uint32,byte[])
- sonarqube下载地址
- php+mysql封装增删查改
- MySQL学习笔记_3_MySQL创建数据表(中)
- 布袋除尘器过滤风速多少_滤筒除尘器的过滤风速如何选择?不会的进来看
- 落花美眷,终究抵不过逝水流连,回忆我的2016,展望2017。
- HYSBZ1061题解
- oracle数据库exp权限,exp/imp 权限问题及其知识拓展
- kafka 不同分区文件存储_Kafka 系列(二)文件存储机制与Producer架构原理怎样保证数据可靠性??...
- Modules Of YoloV5 Architecture
- Noark入门之极速体验
- 你的脸儿圆又圆改变MSN头像(转)
- Idea中发布JAR包到中央仓库报错问题处理 unable to find valid certification path to requested target
- 多个pdf怎么合并成一个pdf?多个pdf文件怎么合并成一个文件?
- 使用Matlab调用动态链接库dll
- Windows8 照片查看器,图片发黄解决方法~
- 怎样用C++在控制台中编写俄罗斯方块
- 【HTML+CSS】01.品优购首页制作——快捷导航shortcut制作
热门文章
- 系统检测到您正在使用网页抓取工具_【安全】58反抓取简介
- 小米10谷歌连携失败_Android 11 喜讯!小米 10 率先尝鲜,官方刷机包发布下载
- Android跑马灯
- html5时钟代码菜鸟课程,html5绘制时钟动画
- linux下redis权限,Linux(Centos)下Redis开机自启设置
- 分析型数据仓库中读写分离的实现
- 20181009-9 每周例行报告
- win linux 装系统 通过 u盘
- OEL7.2下Oracle11.2.0.4RAC部署
- 关闭sql执行功能及找回08CMS系统管理员密码