从Log Parser中的IIS日志文件中获取浏览器名称和版本

use*_*397 7 sql-server iis logparser

我正在寻找通过日志解析器查询从IIS日志文件的用户代理字段中找出浏览器名称和版本,操作系统名称和版本.

由于User-Agent字符串对于每个浏览器和设备具有不同的格式,我如何通过日志解析器查询从每个字符串中获取浏览器名称和版本?实际上要在db表中存储完整的UA字符串.SQL中是否有任何其他函数可以从存储的字段值中获取浏览器和版本号?

我试过这个查询来查找浏览器名称:

SELECT top 100 case strcnt(cs(user-agent), 'Firefox') 
when 1 THEN 'Firefox'  
else 
case strcnt(cs(user-agent), 'MSIE+6') 
when 1 THEN 'IE 6' 
else 
case strcnt(cs(user-agent), 'MSIE+7') 
when 1 THEN 'IE 7' 
else case strcnt(cs(user-agent), 'Chrome') 
when 1 THEN 'Chrome' 
else case strcnt(cs(user-agent), 'MSIE ') 
when 1 THEN 'IE' 
else case strcnt(cs(user-agent), 'Safari ') 
when 1 THEN 'Safari' 
else case strcnt(cs(user-agent), 'Opera ') 
when 1 THEN 'Opera' 
ELSE 'Unknown' 
End End End End End End End as Browser
Run Code Online (Sandbox Code Playgroud)

Log Parser或SQL中是否有其他功能可用于获取浏览器名称?还有如何获得浏览器版本?

kbv*_*hnu 6

如果需要IIS日志文件中的用户代理的详细信息,则需要使用Log Parser.您可以使用以下查询来获取用户代理.

SELECT  
    cs(User-Agent) As UserAgent,  
    COUNT(*) as Hits  
FROM c:\inetpub\logs\LogFiles\W3SVC1\*  
GROUP BY UserAgent  
ORDER BY Hits DESC
Run Code Online (Sandbox Code Playgroud)

希望您安装了LogParser,如果没有安装,请从此处安装并尝试使用以下方式

LogParser.exe -i:W3C "Query" -o:CSV
Run Code Online (Sandbox Code Playgroud)

它将生成类似于以下的输出

UserAgent   Hits
iisbot/1.0+(+http://www.iis.net/iisbot.html)    104
Mozilla/4.0+(compatible;+MSIE+8.0;… 77
Microsoft-WebDAV-MiniRedir/6.1.7600 23
DavClnt
Run Code Online (Sandbox Code Playgroud)

您可以从这里阅读更多内容.

  • 谢谢你的回复.我从IIS日志文件中获取了用户代理字符串.但我试图从用户代理字符串中获取浏览器名称和版本.由于每个用户代理字符串具有不同的格式,我不知道如何特别获取浏览器名称和版本.我正在寻找在日志解析器查询或SQL查询中使用的函数来获取浏览器名称和版本号. (2认同)