使用SQL进行IIS日志中的访问记录统计

来源:互联网 发布:山东淘宝代运营 编辑:程序博客网 时间:2024/04/27 16:33

背景:需要给客户查询哪些IP访问了软件。并查出IP的地址。只能通过查IIS的日志数据了。

以下方法需要知识:SQL

 

          IIS日志中记录了,网站页面的所有访问记录,包括时间、获取方法、文件的URL、访问者IP,以及协议状态(200是正常)。(更多信息可查看百度百科 IIS日志

         具体方法为:将IIS日志导入数据库中,使用SQL查询语句分析日志中统计数据。方法很简单,仅供参考。

一、      获取表结构

将少量数据复制到excel表中,删除无效数据,然后使用SQL导入向导,导入少量数据,然后将数据删除。注意导入的excel的第一行数据会被判断为列字段。

二、      使用bulk insert语句导入完整日志数据

打开日志文件ex120629.log(举例),将无用的说明数据和第一行数据删除,执行下面的语句

BULKINSERT test.iis29

   FROM'd:\ ex120629.log'

   WITH 

      (

         FIELDTERMINATOR='  ',

         ROWTERMINATOR=' \n'

      )

 


 注:导入过程中,有可能会会提示数据超出格式范围,手动修改相关的字段类型为nvchar(MAX),即可。BULK Insert 详细请参考微软知识库

三、      查询访问记录的统计结果

1.         查询每个IP的访问次数,并按照访问次数排序,执行下面的SQL语句:

select[c-ip] ,COUNT([c-ip])b  fromiis29

groupby [c-ip]

orderby b desc

 

 


 

2.         查询每个IP访问单个页面的数据统计,按照访问次数排序,执行下面的SQL语句:

select[c-ip] ,[cs-uri-stem],count([c-ip])b  fromiis29

groupby [c-ip],[cs-uri-stem]

orderby b desc

 

同时也编写了一个工具,可以到下载中心下载《IIS日志查看器》。

 

原创粉丝点击