一、建立一个数据表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中网站访问量统计方法相关推荐

  1. 如何实现ASP.NET中网站访问量的统计

    下面介绍如何进行ASP.NET中网站访问量的统计. 一.建立一个数据表IPStat用于存放用户信息 我在IPStat表中存放的用户信息只包括登录用户的IP(IP_Address),IP来源(IP_Sr ...

  2. ASP.NET中在线用户统计

    天极论坛 统计在线用户的作用不言而喻,就是为了网站管理者可以知道当前用户的多少,然后根据用户数量来观察服务器或者程序的性能,从而可以直观的了解到网站的吸引力或者网站程序的效率.现在,我们就介绍一个简单 ...

  3. 浅谈在ASP.NET中数据有效性校验的方法

    作者:未知 作为一名程序员,一定要对自己编写的程序的健壮性负责,因此数据的校验无论在商业逻辑还是系统实现都是必不可少的部分. 我这里总结了一种自认为比较不错的asp.net(C#)的数据校验方法,如大 ...

  4. asp.net中防止攻击的方法

    你应该在程序中验证所有的不信任输入.你应该假定所有的用户输入都是非法的.用户可以在应用程序中提供表单字段,查询字串,客户端cookies和浏览器环境值比如用户代理字串和IP地址等. 弱输入校验通常为注 ...

  5. 网站访问量统计实现.

    通过用户对网站的访问,来统计该网站的总访问量.实现起来非常简单.把每一次访问的数累加即可.由于数据 更新频繁,所以数据存储在文本文件中.每次更新其中的文本文件数据即可. 然后把数字替换成相应图片.不知 ...

  6. c语言网络在线人数统计,教你用ASP程序实现网站在线人数统计

    欢迎来到小编的文章进行学习阅读,想必大家又有很多问题吧,在这里会有你想要收获的答案,请大家慢慢学习吧!计算机编程语言 在浏览网页的时侯,常常可以看见一些"当前网站上的人数是XXX人" ...

  7. mysql中如何统计数据_mysql中的数据统计方法

    1 数据统计 使用COUNT()函数计算表中的数据数目(比如emp表中的员工数目) mysql> select count(*) from emp; 查询结果如下: +----------+ | ...

  8. 删除bing搜索中网站页面的方法

    通过删除存在法律问题的内容或过时的内容,改善网站在必应搜索中的显示效果. 搜索结果中显示的页面是断开的链接(404 – 未找到). 出现在搜索结果中的网页,如果网页的缓存版本中包含过期内容. 注意 如 ...

  9. Python中list, ndarry数据中元素的统计方法

    通过不同方式获取列表,数组中元素个数的统计,count()或者Counter np.unique() # 获取不同元素个数 list.count(i) # 获取指定元素在列表或数组中的个数 from ...

最新文章

  1. 点赞模块设计:Redis缓存 + 定时写入数据库实现高性能点赞功能
  2. 用DriverStudio开发USB驱动程序
  3. Objective-C 中Socket常用转换机制(NSData,NSString,int,Uint8,Uint16,Uint32,byte[])
  4. sonarqube下载地址
  5. php+mysql封装增删查改
  6. MySQL学习笔记_3_MySQL创建数据表(中)
  7. 布袋除尘器过滤风速多少_滤筒除尘器的过滤风速如何选择?不会的进来看
  8. 落花美眷,终究抵不过逝水流连,回忆我的2016,展望2017。
  9. HYSBZ1061题解
  10. oracle数据库exp权限,exp/imp 权限问题及其知识拓展
  11. kafka 不同分区文件存储_Kafka 系列(二)文件存储机制与Producer架构原理怎样保证数据可靠性??...
  12. Modules Of YoloV5 Architecture
  13. Noark入门之极速体验
  14. 你的脸儿圆又圆改变MSN头像(转)
  15. Idea中发布JAR包到中央仓库报错问题处理 unable to find valid certification path to requested target
  16. 多个pdf怎么合并成一个pdf?多个pdf文件怎么合并成一个文件?
  17. 使用Matlab调用动态链接库dll
  18. Windows8 照片查看器,图片发黄解决方法~
  19. 怎样用C++在控制台中编写俄罗斯方块
  20. 【HTML+CSS】01.品优购首页制作——快捷导航shortcut制作

热门文章

  1. 系统检测到您正在使用网页抓取工具_【安全】58反抓取简介
  2. 小米10谷歌连携失败_Android 11 喜讯!小米 10 率先尝鲜,官方刷机包发布下载
  3. Android跑马灯
  4. html5时钟代码菜鸟课程,html5绘制时钟动画
  5. linux下redis权限,Linux(Centos)下Redis开机自启设置
  6. 分析型数据仓库中读写分离的实现
  7. 20181009-9 每周例行报告
  8. win linux 装系统 通过 u盘
  9. OEL7.2下Oracle11.2.0.4RAC部署
  10. 关闭sql执行功能及找回08CMS系统管理员密码