现在是网络时代了,不少朋友都拥有了自己的个人网站啊,个人主页什么的,很多人问我如何统计个人网站的流量,其实这个问题很简单的。使用IIS服务器的网站,如果启动IIS的LOG日志记录,每一个网站每一天都会有一个日志生成,这个日志详细地记录了所有访问您的网站的记录,本人是在时代互联 http://now.net.cn 购买的空间,他们空间已经自带了IIS的日志分析系统,查询很方便的,有需要的朋友可以去他们的网站了解一下。
以下是其中一段:
ex050104.log
#Software: Microsoft Internet Information Services 6.0
#Version: 1.0
#Date: 2005-01-03 16:00:00
#Fields: date time cs-method cs-uri-stem cs-uri-query c-ip cs(Referer) sc-status sc-bytes cs-bytes time-taken
2005-01-01 16:02:06 POST /searchout.asp - 70.25.29.53 http://www.test.com/ 200 18058 653 17312
2005-01-01 16:02:21 GET /images/cd-01_07.gif - 70.25.29.53 http://www.test.com/Enterprise/detail.asp?id=1612186 304 214 464 750
2005-01-01 16:02:22 GET /Enterprise/detail.asp id=1612186 70.25.29.53 http://www.test.com/searchout.asp 200 17735 369 4656
我们可以看到,在LOG日志里面的最顶头有一些相关说明,记录开始时间,以及将要记录哪些信息。
比如#Fields: date time cs-method cs-uri-stem cs-uri-query c-ip cs(Referer) sc-status sc-bytes cs-bytes time-taken
其中
date表示记录访问日期;
time访问时间;
cs-method表示访问方法,常见的有两种,一是GET,就是平常我们打开一个URL访问的动作,二是POST,提交表单时的动作;
cs-uri-stem就是访问哪一个文件;
cs-uri-query是指访问地址的附带参数,如asp文件?后面的字符串id=12等等,如果没有参数则用-表示;
c-ip访问者IP;
cs(Referer)访问来源;
sc-status状态,200表示成功,403表示没有权限,404表示打不到该页面,500表示程序有错;
sc-bytes服务端传送到客户端的字节大小;
cs-bytes客户端传送到服务端的字节大小;
time-taken处理时间。
利用上面IIS的LOG日志,可以做如下用途:
一、网站访问统计:
通过对上面两行的记录,我们可以得知,每当有一个访问,都会相应的有一个记录,为新的一行,统计这些记录,就可以得到一个准确的统计数字了。
需要注意的地方:LOG日志会把每一次浏览都详细记录,包括如index.asp文件里面的logo.gif等等图片都记录为新的一行。也就是说如果一个页面里面如果使用了10张图片,那同时也会有10个记录产生。如果注意到了这一点,我们就可以做一个更加准确的统计就是过滤文件后缀名了。
使用程序来分析这些统计会快速准确的多,一个程序的例子如下(C#):
int count=0;
public void logparse(){
StreamReader sr = new SteamReader("ex050104.log");
string line="";
while((line=sr.ReadLine())!=null){
DoParse(line);
}
}
private void DoParse(string line){
this.count++;
}
上面的就是一个最简单的统计日志的行数的程序。
如果要做详细的分析,如:要统计下载量,也就是sc-bytes的总值,就可以做如下改动:
int downbytes=0;
private void DoParse(string line){
string[] linearr = line.Split(' ');//将一行记录以空格分割开来.
int bytes = Convert.ToInt32(linearr[8]); //前提是知道一行记录里面字段的位置
downbytes += bytes;
this.count++;
}
注意日志记录的传送的是以字节记录的,而不是K。
同样的道理可以分析页面运行的总时间,等等。
分析点击统计量与来访IP数的区别:一个来访者,可能会在网站上访问多个页面,那就会有多个记录是同一个IP的。那统计那些不重复的IP访问记录,就是来访IP数了。
怎样不统计那些重复的IP呢?下面只是其中一种方案:
private void IPParse(string ip){
Hashtable iphash = new Hashtable();//使用Hashtable来保存
if(iphash.ContainsKey(ip)){ //如果已经存在,就加1
iphash[ip]=(int)iphash[ip]+1;
}else{
iphash.Add(ip,0); //如果没有则新添加
}
}
这样就可以不统计重复的IP,也可以统计同一个IP访问的次数。
统计访问来源可以使用同上的方法,就可以得到不重复的来源统计了。
二、分析网站的结构:
1、首先站长可能比较关心的一点是,到底我的网站里哪一个页面被人点击得最多,同样可以使用IIS的LOG日志来分析,主要分析cs-uri-stem这一字段。
和分析重复的IP和来源一样,可以统计某一页面的点击量。
2、分析网站页面出错的页面,主要针对sc-status
分析主要有哪些页面出错,对网站进一步了解。
3、分析网站页面的运行时间,主要针对time-taken,可以确定自己的哪一个程序写得不好,导致访问时间过长。
通过IIS的日志文件可以得到一些我们网站制作者想要的信息,可以进一步检查自己的网站的不足。
网站统计说到底也就是这么简单,无非就是对日志文件每一行进行简单的统计而已。分析日志文件,您自己也可以做网站统计分析了。有兴趣建立网站的朋友可以登陆时代互联的网站(now.net.cn),他们的空间是提供试用的,速度,功能、稳定上都可以说是一流的,特别是他们前段时间推出的时代互联 Global CDN全球网络镜像及加速引擎,解决了影响互联网传输性能的“第一公里”和“网间互联瓶颈”等各个环节的问题,从而实现跨地区、跨运营商网络加速服务。现购他们的空间都可以送Global CDN网络加速器,具体的可以上他们的网站了解: http://www.jiqiao8.net