If you are using Analog to analyze your web server log files, then you might have noticed a recent increase in hits for “Unknown Windows” in the operating system report.
Most of these hits are actually coming from Windows Vista, but as Analog hasn’t been updated in a while, it doesn’t recognize Vista yet. You need to patch the source of Analog for this functionality.
Download the latest source from the Analog site (analog-6.0.tar.gz or anlg60.zip).
Unpack the archive on your hard drive and look into the src directory.
You need to modify the file “tree.c“.
Look for this code:
if (*c == '5') {
if (*(c + 1) == '.' && (*(c + 2) == '0'))
*name = "Windows:Windows 2000";
else if (*(c + 1) == '.' && (*(c + 2) == '1'))
*name = "Windows:Windows XP";
else if (*(c + 1) == '.' && (*(c + 2) == '2'))
*name = "Windows:Windows Server 2003";
else
*name = "Windows:Unknown Windows";
}
else if (*c >= '6' && *c <= '9')
*name = "Windows:Unknown Windows";
else
and replace it with:
if (*c == '5') {
if (*(c + 1) == '.' && (*(c + 2) == '0'))
*name = "Windows:Windows 2000";
else if (*(c + 1) == '.' && (*(c + 2) == '1'))
*name = "Windows:Windows XP";
else if (*(c + 1) == '.' && (*(c + 2) == '2'))
*name = "Windows:Windows Server 2003";
else
*name = "Windows:Unknown Windows";
}
else if (*c == '6') {
if (*(c + 1) == '.' && (*(c + 2) == '0'))
*name = "Windows:Windows Vista";
}
else if (*c >= '7' && *c <= '9')
*name = "Windows:Unknown Windows";
else
This will tell Analog to recognize user agents such as Mozilla/4.0 (compatible; MSIE 7.0; Windows NT 6.0; SLCC1; .NET CLR 2.0.50727; Media Center PC 5.0; .NET CLR 3.0.04506) as coming from a Windows Visa PC.
Windows Vista's OS string is "Windows NT 6.0".
After you've modified tree.c you need to recompile analog. On most Linux/Unix/Mac systems you just need to run make inside the Analog directory.
Happy compiling and analyzing!
Pingback: Site Check - Web Site Advice » Blog Archive » Modifying Analog to recognize iPod/iPhone