【王巨集喜】在ASP.net中網站訪問量統計方法
一位QQ好友問我個人網站訪問量是如何統計的,由於本人初學做網站,水平有限,所介紹的方法可能是笨方法,但在我網站上能夠湊合著使用,希望大家多多指教。
一、建立一個資料表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秒鐘內統計一天的流量,然後將其刪除,把統計結果儲存到另一個資料表中,供頁面顯示昨日訪問量是呼叫。定時器的建立和使用請點選建立一個或者幾個定時器,供你參考。
以上不妥之處請批評指正。謝謝!
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/12639172/viewspace-281048/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- 關於網站訪問量統計網站
- Leancloud 快速搞定網站訪問量統計Cloud網站
- 網站訪問量上不去的19個因素網站
- 在Asp.net MVC中訪問靜態頁面ASP.NETMVC
- 網站每日PV/IP統計/總頻寬/URL統計指令碼分享(依據網站訪問日誌)網站指令碼
- redis設計統計使用者訪問量Redis
- 加快網站訪問速度的9大方法網站
- 在Linux中,如何統計ip訪問情況?分析 nginx 訪問日誌?如何找出訪問頁面數量在前十位的ip?LinuxNginx
- 本地網站外網訪問網站
- 百萬級訪問量網站的技術準備工作網站
- 使用百度統計分析你的網站訪問資料網站
- 在終端上訪問網站和下載檔案網站
- 增強網站可訪問性的25種方法網站
- 網站訪問變慢最佳化,淺析10種網站訪問變慢最佳化方法的作用網站
- 如何用 Redis 統計使用者訪問量?Redis
- 如何用百度統計監測站群機網站的訪問情況網站
- 記錄如何用php做一個網站訪問計數器的方法PHP網站
- 如何根據網站訪問量計算出所需要的頻寬或流量大小網站
- 網站訪問過程&HTML網站HTML
- 訪問github出現無法訪問此網站Github網站
- 解決網站訪問量過大問題的常用技術彙總網站
- 訪問被封網站的十個方法(作者: 木藝兒)網站
- iResearch:中國團購月訪問量80%來自Top10網站網站
- Similarweb:ChatGPT網站月度訪問量從春季到仲夏急劇下降MILAWebChatGPT網站
- 配置ACL在網路服務中訪問控制
- 訪問統計(排除爬蟲訪問)爬蟲
- 【dinghao】在Asp.net中呼叫非同步方法--使用訊號量ASP.NET非同步
- 手機能訪問網站,電腦不能訪問網站,以github.io為例網站Github
- 在Linux中,假如公司網站訪問速度變的很慢很慢,該如何處理?Linux網站
- ASP.NET 2.0 中的資料訪問ASP.NET
- 控制對網站的訪問 (轉)網站
- 華納雲 :網站頁面訪問不了的原因和解決方法網站
- 系統訪問量怎麼算
- 2013年情色網站訪問統計 索尼PS玩家最好色佔55%網站
- 爬蟲,可用於增加訪問量和抓取網站全頁內容爬蟲網站
- comScore:新冠病毒推動新聞網站訪問量增長網站
- Hiwise:美國團購網站獨立使用者訪問量總計下滑25% Groupon下滑近50%網站
- 在servlet中如何訪問javabeanServletJavaBean