2013-07-22 3 views
7

Я искал имя и версию обозревателя, имя и версию обозревателя из поля User Agent в файле журнала IIS через запрос парсера журнала.Получить имя и версию браузера из файла журнала IIS в Log Parser

Поскольку строка User-Agent имеет разный формат для каждого браузера и устройства, как я могу получить имя и версию браузера точно из каждой строки через запрос парсера журнала? На самом деле собирается хранить полную строку UA в таблице db. То есть любая другая функция, доступная в 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 

есть ли другие функции, доступные в Log Parser или SQL, чтобы получить имя браузера? А также как получить версию браузера?

ответ

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 

Надеется, что вы установили LogParser если не установлен, пожалуйста, установить с here и попробуйте использовать следующий способ

LogParser.exe -i:W3C "Query" -o:CSV 

Он будет генерировать выходной сигнал, подобного следующему

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 

Вы можете узнать больше от here.

+2

Благодарим за отзыв. Я получил строку пользовательского агента из файла журнала IIS. Но я пытаюсь получить имя и версию браузера из строки User Agent. Поскольку каждая строка пользовательского агента имеет другой формат, я не знаю, как конкретно получить имя и версию браузера. Я ищу функцию либо для использования в запросе парсера журнала, либо в запросе SQL, чтобы получить имя браузера и номер версии. – user1905397

2
select distinct 
    case strcnt(cs(user-agent),'Chrome') when 1 THEN 'Chrome' 
    else 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),'MSIE+8') when 1 THEN 'IE 8' 
    else case strcnt(cs(user-agent),'MSIE+9') when 1 THEN 'IE 9' 
    else case strcnt(cs(user-agent),'MSIE+10') when 1 THEN 'IE 10' 
    else case strcnt(cs(user-agent),'IE+11') when 1 THEN 'IE 11' 
    else case strcnt(cs(user-agent),'+rv:11') when 1 THEN 'IE 11' 
    else case strcnt(cs(user-agent),'Opera') when 1 THEN 'Opera' 
    else case strcnt(cs(user-agent),'Safari/') when 1 THEN 'Safari' 
    else case strcnt(cs(user-agent),'iPhone+OS+5') when 1 THEN 'Safari' 
    else case strcnt(cs(user-agent),'iPhone+OS+6') when 1 THEN 'Safari' 
    else case strcnt(cs(user-agent),'iPhone+OS+7') when 1 THEN 'Safari' 
    else case strcnt(cs(user-agent),'CPU+OS+6') when 1 THEN 'Safari' 
    else case strcnt(cs(user-agent),'iTunes/11') when 1 THEN 'iTunes' 
    else case strcnt(cs(user-agent),'iTunes/10') when 1 THEN 'iTunes' 
    else 'Unknown' 
    End 
    End 
    End 
    End 
    End 
    End 
    End 
    End 
    End 
    End 
    End 
    End 
    End 
    End 
    End 
    End 
    End 
    as Browser, 
    COUNT(c-ip) as Hits 
    FROM '[LOGFILEPATH]' 

/* Dont display any cs(User-Agent) which are created by Bots */ 

WHERE cs(User-Agent) NOT LIKE '%Java%' 
AND cs(User-Agent) NOT LIKE '%moodle%' 
AND cs(User-Agent) NOT LIKE '%twitter%' 
AND cs(User-Agent) NOT LIKE '%mymmu%' 
AND cs(User-Agent) NOT LIKE '%MMU%' 
AND cs(User-Agent) NOT LIKE '%admant%' 
AND cs(User-Agent) NOT LIKE '%contextAd%' 
AND cs(User-Agent) NOT LIKE '%bingbot%' 
AND cs(User-Agent) NOT LIKE '%genieo%' 
AND cs(User-Agent) NOT LIKE '%proximic%' 
AND cs(User-Agent) NOT LIKE '%PageBot%' 
AND cs(User-Agent) NOT LIKE '%feedfetcher%' 
AND cs(User-Agent) NOT LIKE '%wordpress%' 
AND cs(User-Agent) NOT LIKE '%PictureBot%' 
AND cs(User-Agent) NOT LIKE '%WeSEE%' 
AND cs(User-Agent) NOT LIKE '%Sogou%' 
AND cs(User-Agent) NOT LIKE '%msnbot%' 
AND cs(User-Agent) NOT LIKE '%Mediapartner%' 
AND cs(User-Agent) NOT LIKE '%MagpieRSS%' 
AND cs(User-Agent) NOT LIKE '%Affectv%' 
AND cs(User-Agent) NOT LIKE '%Nutch%' 
AND cs(User-Agent) NOT LIKE '%SkimBot%' 
AND cs(User-Agent) NOT LIKE '%WhatWeb%' 
AND cs(User-Agent) NOT LIKE '%Googlebot%' 
AND cs(User-Agent) NOT LIKE '%Yahoo%' 
AND cs(User-Agent) NOT LIKE '%Netcraft%' 
AND cs(User-Agent) NOT LIKE '%AhrefsBot%' 
AND cs(User-Agent) NOT LIKE '%SemrushBot%' 
AND cs(User-Agent) NOT LIKE '%MJ12bot%' 
AND cs(User-Agent) NOT LIKE '%DotBot%' 
AND cs(User-Agent) NOT LIKE '%Vagabondo%' 
AND cs(User-Agent) NOT LIKE '%NetSeer%' 
AND cs(User-Agent) NOT LIKE '%PHP%' 

/* Dont display any cs(User-Agent) which has an entry of nothing */ 

AND cs(User-Agent) is NOT NULL 

GROUP by Browser 
ORDER by Hits DESC 
+0

https://notsomany.wordpress.com/2014/05/01/log-parser-studio-user-agent-browser-query/ – Ruslan

+0

https://gallery.technet.microsoft.com/Log-Parser-Studio- cd458765 – Ruslan

+1

Измените свой ответ, чтобы добавить ссылки, которые вы указали в комментариях. –