统计网站日访问量,总访问量

1.把Count.txt和dayCount.txt两个文件放至App_Data目录下
2.把Global.asax.txt中的代码复制至Global.asax文件中即可
3.在需要使用"今日访问量"的地方:Application["dayCounter"]
4.在需要使用"历史访问量"的地方:Application["Counter"]

<%@ Application Language="C#" %>

<script runat="server">
   //功能:网站的访问量统计(今日访问量,总访问量)
   //作者:丁礼奎
   //日期:2012-04-12 

    public static string strs; //保存从文本中读取的信息
    public static string day;//记录文本中访问时间

    void Application_Start(object sender, EventArgs e)
    {
        /**********总访问量****************/
        int intCount = 0;
        System.IO.StreamReader sr;
        string serverFile = Server.MapPath("~/App_Data/Count.txt");
        sr = System.IO.File.OpenText(serverFile);
        while (sr.Peek() != -1)
        {
            string strCount = sr.ReadLine();
            intCount = int.Parse(strCount);
        }
        sr.Close();
        object obj = intCount;
        Application["counter"] = obj;
        /*********************************/

        /**********今日访问量****************/
        Application["dayCounter"] = 0;
        Application["day"] = DateTime.Now.ToString();
        /*********************************/  

    }

    void Application_End(object sender, EventArgs e)
    {
        /**********总访问量****************/
        int intStat = 0;
        intStat=(int)Application["counter"];
        string serverFile = Server.MapPath("~/App_Data/Count.txt");
        System.IO.StreamWriter sr = new System.IO.StreamWriter(serverFile, false);
        sr.WriteLine(intStat);
        sr.Close();
        /*********************************/

        /**********今日访问量****************/
        int Stat = 0;
        Stat = (int)Application["dayCounter"];
        string day0 = (string)Application["day"];         //保存日期
        string str = Stat.ToString() + "," + day0.ToString();
        string file_path = Server.MapPath("~/App_Data/dayCount.txt");        // 将数据记录写入文件
        System.IO.StreamWriter srw = new System.IO.StreamWriter(file_path, false);
        srw.WriteLine(str);
        srw.Close();
        /*********************************/
    }

    void Application_Error(object sender, EventArgs e)
    {
        //在出现未处理的错误时运行的代码

    }

    //统计总访问量
    void Session_Start(object sender, EventArgs e)
    {
        Application.Lock();
        /**********总访问量****************/
        int intStat = 0;
        intStat = (int)Application["counter"];
        ++intStat;
        object objCount = intStat;
        Application["counter"] = objCount;
        string serverFile = Server.MapPath("~/App_Data/Count.txt");
        System.IO.StreamWriter sr = new System.IO.StreamWriter(serverFile, false);
        sr.WriteLine(intStat);
        sr.Close();
        /*********************************/

        /**********今日访问量****************/
        int count;// 记录文本中的日访问量
        string NowDay; //记录文本中访问时间
        System.IO.StreamReader srd;
        string file_path = Server.MapPath("~/App_Data/dayCount.txt");  //取得文件的实际路径
        srd = System.IO.File.OpenText(file_path); //打开文件进行读取
        while (srd.Peek() != -1)
        {
            strs = srd.ReadLine(); //保存从文件中读取的信息
        }
        srd.Close();
        string[] str = strs.Split(‘,‘); //将读取的信息存放在字符串数组str中
        count = Convert.ToInt32(str[0]); //日访问量
        day = str[1]; //最近一次访问时间
        NowDay = DateTime.Now.ToString();
        //文件中保存的时间值与系统时间相比,如果系统时间大,则重新开始计数
        if (DateTime.Compare(Convert.ToDateTime(NowDay), Convert.ToDateTime(day)) >= 0)
        {
            count = 0;
            day = DateTime.Now.AddDays(1).ToShortDateString() + " " + "00:00:00"; //day保存下一天的开始时间
            string NewDayStr = "0" + "," + day.ToString();
            // 将数据记录写入文件
            //string file_path0 = Server.MapPath("counter.txt");
            System.IO.StreamWriter srw0 = new System.IO.StreamWriter(file_path, false);
            srw0.WriteLine(NewDayStr);
            srw0.Close();
        }
        object objcount = count;
        object objday = day;
        //日访问量
        Application["dayCounter"] = objcount;
        //最近一次访问时间
        Application["day"] = objday;
        // 数据累加
        int Stat = 0;
        //获取Application对象中的日访问量
        Stat = (int)Application["dayCounter"];
        Stat += 1;
        object obj = Stat;
        Application["dayCounter"] = obj;
        //保存日期
        string day0 = (string)Application["day"];
        string str0 = obj.ToString() + "," + day0.ToString();
        // 将数据记录写入文件
        //string file_path0 = Server.MapPath("counter.txt");
        System.IO.StreamWriter srw1 = new System.IO.StreamWriter(file_path, false);
        srw1.WriteLine(str0);
        srw1.Close();
        /*********************************/

        Application.UnLock();
    }

    void Session_End(object sender, EventArgs e)
    {
        //Session["num"]=Convert.ToInt16(Session["num"].ToString()) - 1;

        //在会话结束时运行的代码。
        // 注意: 只有在 Web.config 文件中的 sessionstate 模式设置为
        // InProc 时,才会引发 Session_End 事件。如果会话模式
        //设置为 StateServer 或 SQLServer,则不会引发该事件。

    }

</script>

  

时间: 2024-11-02 20:26:37

统计网站日访问量,总访问量的相关文章

脚本分享:根据访问日志统计网站每日PV、总带宽、IP统计、url统计等

在平时的运维工作中,我们运维人员需要清楚自己网站每天的总访问量.总带宽.ip统计和url统计等. 虽然网站已经在服务商那里做了CDN加速,所以网站流量压力都在前方CDN层了 像每日PV,带宽,ip统计等数据也都可以在他们后台里查看到的. ------------------------------------------------------------------------------在这里,还是分享一个很早前用到过的shell统计脚本,可以结合crontab计划任务,每天给你的邮箱发送一

shell:统计web服务器每天客户访问量及每个时段的访问量

统计web服务器每天客户访问量及每个时段的访问量 前提:在这之前我每天到公司习惯性的统计一下昨天的总访问量及每个时段的访问量,今天突然想起能不能脚本的方式实现我想要的功能呢,经过一上午的试验,终于测试成功,写了3种不同的方法,最后一种方法最简单 第一种方法(这种方法不灵活,太机械了) read -p "请输入要查询的日志文件:" logFile if [ -e $logFile ];then all=`cat $logFile | cut -d' ' -f1 | sort -n | u

大数据学习之Storm实时统计网站访问量案例35

案例一:统计网站访问量(实时统计)   实时流式计算框架:storm 1)spout 数据源,接入数据源 本地文件如下 编写spout程序: package pvcount; import java.io.BufferedReader; import java.io.FileInputStream; import java.io.FileNotFoundException; import java.io.IOException; import java.io.InputStreamReader;

如何统计网站访问量,代码实现使用全局变量 Application,start,end,Session_start,Session_end事件

void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 long totalCount = 0; //总访问数 int todayCount = 0;//今天在线人数 //先从XML中取得访问数 string xmlFilePath = Server.MapPath("~/") + "App_Data//xmls//count.xml"; //XML文件路径 DataSet ds =

如何估算网站日承受最大访问PV

每个老板或客户都会问架构师这个问题. 你设计的网站能承受多大的日访问量. 程序员都会拍胸脯说出一个心理最大数字.说的时候很有信心.其实这个数字大多是猜的.作为一个理性的程序员怎么能用猜呢? 这里就介绍如何计算网站能承受的最高日访问数. 一. 我们得先做测试确认基本数据. 多数情况只计算网站日最大访问pv数,而不是ip或uv(用户访问次数).因为对大多数网站来说,相同pv下无论多少IP造成的访问压力是一样的. 造成服务器压力的访问多是对动态页面的请求,因为这些页面需要读写数据库或做更复杂的即时计算

php统计网站 / html页面 浏览访问次数程序

本文章来给大这介绍了php自己写的一些常用的网站统计代码写法,用无数据库的与使用数据库及html静态页面浏览资次数统计代码,大家可进入参考. 实例1 直接使用txt文件进行统计的代码 <?php session_start(); //定义session,同一IP登录不累加 $filepath = 'count.txt'; //count.txt 统计次数 if($_SESSION['temp'] == ''){ //判断$_SESSION[temp]的值是否为空,其中的temp为自定义的变量 i

统计网站访问人数

添加一个Global.asax文件,加入以下代码: void Application_Start(object sender, EventArgs e) { // 在应用程序启动时运行的代码 int count = 0; System.IO.StreamReader srd; string file_path = Server.MapPath("counter.txt"); //打开文件进行读取 srd = System.IO.File.OpenText(file_path); whi

javaEE之-------统计网站刷新量

每个网站都有自己的统计访问量,但是少不了服务器会出现意外情况,(如断电..) 所以就需要我们在网站挂机的前段时间将这个数据存起来.我们就需要用到网站最大的容器,application,我们采用观察者设计模式实现ServletContextListener接口.然后在销毁之前将这个数据存起来 ps:属于点点知识,大牛请绕道. 开发步骤: 第一步:实现ServletContextListener接口. 第二步:实现两个方法. contextInitialized contextDestroyed 第

七、统计网站中不同省份用户的访问数

一.需求 针对log日志中给定的信息,统计网站中不同省份用户的访问数 二.编程代码 package org.apache.hadoop.studyhdfs.mapreduce; import java.io.IOException; import org.apache.commons.lang.StringUtils; import org.apache.hadoop.conf.Configuration; import org.apache.hadoop.conf.Configured; im