怎么做一个统计网站被浏览次数。

wowchina0752 2010-02-02 02:25:37
怎么做一个统计网站被浏览次数。。最好能提供代码具体详细方法。最好还能知道她是从哪个网站接入过来的。
...全文
1328 15 打赏 收藏 转发到动态 举报
写回复
用AI写文章
15 条回复
切换为时间正序
请发表友善的回复…
发表回复
aellonxie 2010-02-02
  • 打赏
  • 举报
回复
不需要借助别人的软件,只需要自己写一个类,记录下来访的链接地址然后存在数据库,通过地址比对 public static bool LogVisited(int LgnId, int MFId, string URL, string PreUrl, string ip, string GUID, System.Web.UI.Page page,string ItemName)
{
//return true;
string Token_Ring = "";
Token_Ring = Comm.getHttpCookie("Token_Ring", page);
string strQuery = "";
if (URL.StartsWith("/Talent/"))
{
return true;
}

if ((PreUrl!=null) && PreUrl.StartsWith("http://atsky:2000"))
{
return true;
}
if (!URL.StartsWith("LOGON"))
{
URL = "/T_" + URL;
strQuery = "?" + page.Request.ServerVariables["Query_String"];
URL = URL+ (strQuery=="?"?"":strQuery);
}

int newID = 0;
SqlParameter[] parameters = {
new SqlParameter("@LGN_ID", SqlDbType.Int, 10) ,
new SqlParameter("@MF_ID", SqlDbType.Int, 10) ,
new SqlParameter("@URL", SqlDbType.VarChar, 200) ,
new SqlParameter("@Ref_Url", SqlDbType.VarChar, 200) ,
new SqlParameter("@Remote_IP", SqlDbType.VarChar, 20) ,
new SqlParameter("@GUID", SqlDbType.VarChar, 36) ,

new SqlParameter("@UserIdentity", SqlDbType.VarChar, 100),
new SqlParameter("@MajorVersion", SqlDbType.VarChar, 100),
new SqlParameter("@Platform", SqlDbType.VarChar, 100),
new SqlParameter("@UserHostAddress", SqlDbType.VarChar, 100),
new SqlParameter("@UserHostName", SqlDbType.VarChar, 100),
new SqlParameter("@UserAgent", SqlDbType.VarChar, 100),
new SqlParameter("@ItemName", SqlDbType.VarChar, 100),
new SqlParameter("@Token_Ring", SqlDbType.VarChar, 36)
};
parameters[0].Value = LgnId;
parameters[1].Value = MFId;
parameters[2].Value = URL;
parameters[3].Value = (PreUrl == null ? "" : PreUrl);
parameters[4].Value = ip;
parameters[5].Value = GUID;

parameters[6].Value = HttpContext.Current.User.Identity.Name;
parameters[7].Value = page.Request.Browser.MajorVersion.ToString();
parameters[8].Value = page.Request.Browser.Platform.ToString();
parameters[9].Value = HttpContext.Current.Request.UserHostAddress.ToString();
parameters[10].Value = HttpContext.Current.Request.UserHostName.ToString();
parameters[11].Value = HttpContext.Current.Request.UserAgent.ToString();
parameters[12].Value = ItemName;
parameters[13].Value = Token_Ring;

int iRows = whb147.SQLServerDAL.DbHelperSQL.RunProcedure("dbo.Visited_Log_Add", parameters,out newID);

if (iRows > 0)
{
return true;
}
else
{
return false;
}
}
记得在每个页面调用
protected void Page_Load(object sender, EventArgs e)
{
if (!Page.IsPostBack)
{
Comm.LogVisited(Session["LGN_ID"] == null ? 0 : int.Parse(Session["LGN_ID"].ToString()), 0, Request.ServerVariables["PATH_INFO"], Request.ServerVariables["HTTP_REFERER"], Comm.getIP(Page), Comm.getHttpCookie("myGUID", Page), Page, "Win7");
}
}

may_beyond 2010-02-02
  • 打赏
  • 举报
回复
可以利用第三方的啊
http://www.cnzz.com/
网站的浏览数量,ip来源都有 。。。。。。
likevs 2010-02-02
  • 打赏
  • 举报
回复
全局变量一个,程序开始时读取旧数据,保存,然后中间每个Session事件一次(如果指定单IP之类的,可先判断再处理)加1

程序结束时,保存数据到某一介质,我个人喜欢TXT,当然,也可以以是XML,.SQL之类的

这个方法适合于整站统计,如果是页面统计,用上面各位朋友说的方法
  • 打赏
  • 举报
回复
[Quote=引用 4 楼 mmm306306 的回复:]
http://www.51aspx.com/CV/webStat/
参考下!



[/Quote]

up
exiori 2010-02-02
  • 打赏
  • 举报
回复
用文件或者数据记录次数,再后进来一次加一次了。
wangminqi 2010-02-02
  • 打赏
  • 举报
回复
看看这个
这个只支持 aspx

http://www.mybuffet.cn/html/0/168.htm

,如果是htm呢,可以写javascript

if (window.location.toString().indexOf(".htm", 0) > 0){
var yourhtm_url = "your_html.aspx?htmurl=" + escape(window.location.toString()) + "&ref=" + escape(document.referrer.toString());
if (window.location.toString().indexOf(".htm", 0) > 0)
{
yourAjaxRequest(yourhtm_url, null);
}
}


在web.config中写
<httpHandlers>
<add verb="*" path="your_html.aspx" type="yourWeb.your_html,yourWeb"/>
</httpHandlers>



写类似下面的ashx 处理程序


using System;
using System.Collections.Generic;
using System.Linq;
using System.Web;
using System.Web.Services;
using System.Text;
using System.Net;
using System.IO;
using MyData_object;
using System.Configuration;
using System.Web.Configuration;


namespace yourWeb
{
[WebService(Namespace = "http://tempuri.org/")]
[WebServiceBinding(ConformsTo = WsiProfiles.BasicProfile1_1)]
public class your_html : IHttpHandler
{
public void ProcessRequest(HttpContext context)
{
try
{
if (context.Request.QueryString["htmurl"] != null)
{
try
{
HttpRequest request = context.Request;
string UrlReferrer = "";
string UrlReferrerHost = "";
if (context.Request.QueryString["ref"] != null && context.Request.QueryString["ref"]!="")
{
UrlReferrer = context.Request.QueryString["ref"].ToString();
UrlReferrerHost = UrlReferrer.Substring(UrlReferrer.IndexOf("//") + 2, UrlReferrer.IndexOf("/", UrlReferrer.IndexOf("//") + 2) - UrlReferrer.IndexOf("//") - 2);
}
//穿过代理服务器取远程用户真实IP地址:
string str_Address = "";
//if (HttpContext.Current.Request.ServerVariables["HTTP_VIA"] != null)
// str_Address = HttpContext.Current.Request.ServerVariables["HTTP_X_FORWARDED_FOR"].ToString();
//else
//{
//str = HttpContext.Current.Request.ServerVariables["REMOTE_ADDR"].ToString();
str_Address = HttpContext.Current.Request.UserHostAddress;
//}

HttpBrowserCapabilities bc = new HttpBrowserCapabilities();
bc = HttpContext.Current.Request.Browser;
string Xt = bc.Platform;
string Browser = bc.Type;
string url = context.Request.QueryString["htmurl"].ToString().Replace("http://" + context.Request.Url.Authority.ToString(), "");
string zzm = "";
Boolean zz = false;
if (Global.ODCm != null)
{
Global.ODCm.Parameters["@Address"].Value = str_Address;
Global.ODCm.Parameters["@url"].Value = url;
Global.ODCm.Parameters["@UrlRefHost"].Value = UrlReferrerHost;
Global.ODCm.Parameters["@UrlRef"].Value = UrlReferrer;
Global.ODCm.Parameters["@Xt"].Value = Xt;
Global.ODCm.Parameters["@Browser"].Value = Browser;
Global.ODCm.Parameters["@zz"].Value = zz;
Global.ODCm.Parameters["@zzName"].Value = zzm;
Global.ODCm.ExecuteNonQuery();
}
}
catch
{
}
}
}
catch
{
}

}


public bool IsReusable
{
get
{
return false;
}
}
}
}
HooverHuang 2010-02-02
  • 打赏
  • 举报
回复
可以找 第三方。。。。我们公司都是找第三方。。。

在页面链接的地方 加 别人提供的代码。。。。

过后你直接问他 要统计数据。。。。。
wowchina0752 2010-02-02
  • 打赏
  • 举报
回复
zengzhan..你能提供一个具体的例子吗?我新手
随风落梦 2010-02-02
  • 打赏
  • 举报
回复
记录每次打开页面时候数据加一
jianshao810 2010-02-02
  • 打赏
  • 举报
回复
做一个添加统计的页面,然后用img src 放在一个页的最后。这样就能 统计啦。
灵雨飘零 2010-02-02
  • 打赏
  • 举报
回复
你只是统计一个页面的话,用数据库记录次数

就在
page_load
里面加
if(!Page.IsPostBack)
{
更新次数的代码。
}
这样每次刷新页面,会增加一次。
马老虎 2010-02-02
  • 打赏
  • 举报
回复
qqzeng-ip 2010-02-02
  • 打赏
  • 举报
回复
来路分析:


Request.UrlReferrer:获取有关客户端上次请求的 URL 的信息,该请求链接到当前的 URL。
下面的代码示例显示将客户端引用到当前应用程序的 URL 的两个属性值。

Uri MyUrl = Request.UrlReferrer;
Response.Write("Referrer URL Port: " + Server.HtmlEncode(MyUrl.Port.ToString()) + "<br>");
Response.Write("Referrer URL Protocol: " + Server.HtmlEncode(MyUrl.Scheme) + "<br>");


chengkouda 2010-02-02
  • 打赏
  • 举报
回复
数据库增加一个字段,pageload一次就+1
qqzeng-ip 2010-02-02
  • 打赏
  • 举报
回复
你只是统计一个页面的话,用数据库记录次数

就在
page_load
里面加
if(!Page.IsPostBack)
{
更新次数的代码。
}
这样每次刷新页面,会增加一次。

62,254

社区成员

发帖
与我相关
我的任务
社区描述
.NET技术交流专区
javascript云原生 企业社区
社区管理员
  • ASP.NET
  • .Net开发者社区
  • R小R
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告

.NET 社区是一个围绕开源 .NET 的开放、热情、创新、包容的技术社区。社区致力于为广大 .NET 爱好者提供一个良好的知识共享、协同互助的 .NET 技术交流环境。我们尊重不同意见,支持健康理性的辩论和互动,反对歧视和攻击。

希望和大家一起共同营造一个活跃、友好的社区氛围。

试试用AI创作助手写篇文章吧