网站流量的统计中的IP、PV、UV

时间:2023-01-08 11:34:30

  ip、uv和pv的定义:
  IP(独立IP): 即Internet Protocol,指独立IP数。00:00-24:00内相同IP地址之被计算一次。
  PV(访问量): 即Page View, 即页面浏览量或点击量,用户每次刷新即被计算一次。
  UV(独立访客):即Unique Visitor,访问您网站的一台电脑客户端为一个访客。00:00-24:00内相同的客户端只被计算一次。
  ip、pv、uv的区别:
  IP(独立IP):某IP地址的计算机访问网站的次数。这种统计方式很容易实现,具有真实性。所以是衡量网站流量的重要指标。
  PV(访问量):PV反映的是浏览某网站的页面数,所以每刷新一次也算一次。就是说PV与来访者的数量成正比,但PV并不是页面的来访者数量,而是网站被访问的页面数量。
  UV(独立访客):可以理解成访问某网站的电脑的数量。网站判断来访电脑的身份是通过来访电脑的cookies实现的。如果更换了IP后但不清除cookies,再访问相同网站,该网站的统计中UV数是不变的。
  举例说明:
  ①:华夏网右上角:【大唐古玩】 [唐威] {共有48046人来访},其中这个48046就是PV值。
  ②:淘宝网左侧栏的量子统计:今日、昨日、全部统计。这个就是UV值。
  ③:IP值,很容易理解。这个一般在网站的后台使用。因为,如果显示这个浏览量,数值要小很多。

获取ip的简单写法:

<script src="http://pv.sohu.com/cityjson"></script>
<script>
$(function () {
//alert(returnCitySN.cip);
var cip = returnCitySN.cip;
var cid = returnCitySN.cid;
var cname = returnCitySN.cname;

$.ajax({
type: "POST",//提交方法
url: "createPlan.ashx",//后台处理文件地址
datatype: "json",//返回数据类型
async: false,
data: {//提交数据
"method": "updateTotalNum", "cip": cip, "cid": cid, "cname": cname
},
success: function (data) {
//var json = eval('(' + data + ')');
$("#total-visit-num").html(data);
},
error: function () {
alert("ajax有错!");
}
});
});
</script>
 public static string updateTotalNum(HttpContext context)
{
string cip = context.Request["cip"];
string cid = context.Request["cid"];
string cname = context.Request["cname"];
string daytime = DateTime.Now.ToString("yyyy-MM-dd"); // 2008-09-04
string curtime = DateTime.Now.ToString(); // 2008-9-4 20:02:10

string select_sql = "SELECT * FROM visitNum WHERE cip='" + cip + "' AND daytime='" + daytime + "'";
DataSet select_ds = SqlDb.ExecuteSelectSql(select_sql);
if (select_ds.Tables[0].Rows.Count > 0)
{
string return_sql = "SELECT COUNT(1) FROM visitNum";
DataSet ds = SqlDb.ExecuteSelectSql(return_sql);
string result = ds.Tables[0].Rows[0][0].ToString();
return result;
}
else
{
string insert_sql = "INSERT visitNum (cip,cid,cname,daytime,curtime) VALUES ('" + cip + "','" + cid + "','" + cname + "','" + daytime + "','" + curtime + "')";
int flag = SqlDb.ExecuteInsertSql(insert_sql);

string return_sql = "SELECT COUNT(1) FROM visitNum";
DataSet ds = SqlDb.ExecuteSelectSql(return_sql);
string result = ds.Tables[0].Rows[0][0].ToString();
return result;
}

}

pv、uv简单写法:


$(function () {//pv写法
$.ajax({
type: "POST",//提交方法
url: "createPlan.ashx",//后台处理文件地址
datatype: "json",//返回数据类型
//async: false,
data: {//提交数据
"method": "updatePVNum"
},
success: function (data) {
var json = eval('(' + data + ')');
//alert(json[0].uv);
$("#total-visit-num").html(json[0].uv);
},
error: function () {
alert("1ajax有错!");
}
});
});
function getCookieVal(offset)

{

var endstr = document.cookie.indexOf(";", offset);
if (endstr == -1)

endstr = document.cookie.length;
return unescape(document.cookie.substring(offset, endstr));
}

function GetCookie(name)

{

var arg = name + "=";
var alen = arg.length;
var clen = document.cookie.length;
var i = 0;
while (i < clen)

{
var j = i + alen;
if (document.cookie.substring(i, j) == arg)

return getCookieVal(j);
i = document.cookie.indexOf(" ", i) + 1;
if (i == 0)
break;
}
return null;
}

function SetCookie(name, value)

{

var argv = SetCookie.arguments;
var argc = SetCookie.arguments.length;
var expires = (2 < argc) ? argv[2] : null;
var path = (3 < argc) ? argv[3] : null;
var domain = (4 < argc) ? argv[4] : null;
var secure = (5 < argc) ? argv[5] : false;
document.cookie = name + "=" + escape(value) + ((expires == null) ? "" : ("; expires=" + expires.toGMTString())) + ((path == null) ? "" : ("; path=" + path)) + ((domain == null) ? "" : ("; domain=" + domain)) + ((secure == true) ? "; secure" : "");
}

function ResetCounts(name)

{

visits = 0;
SetCookie("visits", visits, expdate, "/", null, false);
location.reload();
}

var expdate = new Date();
var visits; //以下设置COOKIES时间为1年24 * 60 * 60 * 1000 * 365,自己随便设置该时间..

expdate.setTime(expdate.getTime() + (24 * 60 * 60 * 1000));

if (!(visits = GetCookie("visits"))) {
uvUpdate();
visits = 0;
}
visits++;
SetCookie("visits", visits, expdate, "/", null, false);

//document.write("你已经光临本页" + "<FONT COLOR=red>" + visits + "</FONT>" + "次!");

function uvUpdate() {//uv写法
$(function () {
$.ajax({
type: "POST",//提交方法
url: "createPlan.ashx",//后台处理文件地址
datatype: "json",//返回数据类型
//async: false,
data: {//提交数据
"method": "updateUVNum"
},
success: function (data) {
var json = eval('(' + data + ')');
alert(json.uv);
$("#total-visit-num").html(json.uv);
},
error: function () {
alert("ajax有错!");
}
});
});
}
 public static string selectNum()
{
string sql = "select * from visitor_pv_uv";
DataSet ds = SqlDb.ExecuteSelectSql(sql);
return GetTableToJson(ds.Tables[0]);
}
public static string updatePVNum(HttpContext context)
{
string sql = "UPDATE visitor_pv_uv SET pv = pv + 1 ";
int i = SqlDb.ExecuteUpdateSql(sql);
return selectNum();
}
public static string updateUVNum(HttpContext context)
{
string sql = "UPDATE visitor_pv_uv SET uv = uv + 1 ";
int i = SqlDb.ExecuteUpdateSql(sql);
return selectNum();
}