Google Answers Logo
View Question
 
Q: PC mistakenly identified as Mac by webservers ( Answered 4 out of 5 stars,   1 Comment )
Question  
Subject: PC mistakenly identified as Mac by webservers
Category: Computers > Internet
Asked by: mikeintexas-ga
List Price: $10.00
Posted: 02 Feb 2003 22:36 PST
Expires: 04 Mar 2003 22:36 PST
Question ID: 156604
I use Internet Explorer 6.0.2600 on my Dell Dimension PII-233. When I
go to diffenet websites to download a file (Audible.com, Download.com,
microsoft.com, real.com, etc...) something on my computer identifies
me as a Mac user to their webservers. I therefore get redirected to
Mac downloads. Without reformatting my hard drive, is there a "switch"
or cookie, or some file that gets my computer identified as a Mac and
how do I fix it?

Request for Question Clarification by sycophant-ga on 02 Feb 2003 23:17 PST
Hi Mike, 

It's a little unclear as to why this should be occuring. Most web
applications determin platform type by using the web browser's agent
string.

If you visit the following URL, it will tell you what your useragent
string is:
http://dylan.wibble.net/ga-test/ua.php

When you have visited, respond to this clarification request with what
your reported useragent is, and we can proceed from there.

Regards,
sycophant_ga

Clarification of Question by mikeintexas-ga on 03 Feb 2003 21:33 PST
Your useragent is: Mozilla/4.0 (compatible; MSIE 6.0; Windows 98;
iOpus Internet Macros; Q312461)

The above is the answer I get when I go to the url you provided.

Request for Question Clarification by leep-ga on 03 Feb 2003 23:23 PST
Can you disable the  iOpus Macros item to see if that has any effect?
Answer  
Subject: Re: PC mistakenly identified as Mac by webservers
Answered By: sycophant-ga on 04 Feb 2003 02:11 PST
Rated:4 out of 5 stars
 
Hi,

The technique of detecting an operating system from a User Agent
string is far from an exact science, in fact, here are a selection of
the User Agents that have browsed sites on my server recently:

- Mozilla/4.0 (compatible; MSIE 5.22; Mac_PowerPC)
- Mozilla/5.0 (Windows; U; Windows NT 5.1; en-US; rv:1.2.1) 
    Gecko/20021130
- Mozilla/4.0 (compatible; MSIE 6.0; Windows NT 5.1;
    .NET CLR 1.1.4322; .NET CLR 1.0.3705)
- Mozilla/5.0 (Macintosh; U; PPC Mac OS X; en-us) 
- AppleWebKit/51 (like Gecko) Safari/51
- Mozilla/5.0 (X11; U; Linux i686; en-US; rv:1.2.1)
    Gecko/20021130
- Lynx/2.8.4rel.1 libwww-FM/2.14 SSL-MM/1.4.1 OpenSSL/0.9.6c

And that's just six of a potentially unlimited number of variations.

As a human, I can quite easily identify these, as I can comprehend
context, they are:
- Internet Explorer 5.22 on a Mac (OS Version unknown)
- Mozilla 1.2.1 on Windows XP
- Internet Explorere 6.0 on Windows XP
- Safari on Mac OS X
- Mozilla 1.2.1 on Linux on an 686-class processor.
- Lynx (text only browser) on an unknown OS.

However from my perspective as a programmer, I have to look for clues,
and I have to be fairly broad, so I write code that basically does
this:

Does User Agent contain 'linux'?
Yes -> OS is Linux.
No -> Keep trying.

Does User Agent contain 'mac'?
Yes -> OS is Mac OS.
No -> Keep trying.

Does User Agent contain 'windows'?
Yes -> OS is Windows.
No -> I have no idea what the OS is.

The problem in your case is that the “iOpus Internet Macros” banner in
your User Agent is confusing some of these scripts and causing them to
incorrectly identify your operating system.

An example of the sniffing code in question is available at the MSDN
website: http://msdn.microsoft.com/library/default.asp?url=/library/en-us/dndetect/html/sniffing.asp

Assuming the sites you are having problems with are using this code,
or something similar, here is the part you are having problems with:

   if (bMSIE)
   {
      //IE supported OS's
      bWin95 = (ua.indexOf("Windows 95")>=1);
      bWin98 = (ua.indexOf("Windows 98")>=1);
      bWinNT = (ua.indexOf("Windows NT")>=1);
      bWinXP = (ua.indexOf("Windows NT 5.1")>=1);
      bWin16 = (ua.indexOf("Windows 3.1")>=1);
      bWinME = (ua.indexOf("Windows Me")>=1);
      bMac = (ua.indexOf("Mac")>=1);
      bMac68K = (ua.indexOf("Mac_68000")>=1);
      bMacPPC = (ua.indexOf("Mac_PowerPC")>=1);
      bMSSun = (ua.indexOf("SunOS")>=1)
   }

This match will be identifying your system as both Windows 98 and Mac
– the problem is then that the site programmers are checking for, and
handling, the Mac clients before the Windows ones, meaning they see
Mac and go with it, before really taking in all the information.

I have checked the FAQ for iOpus Internet Macros and found no mention
of this, however if you like you can email them at support@iopus.com
or use this form: http://www.iopus.com/service/support.html to provide
feedback to them about the problem you are experiencing.

Short of uninstalling the iOpus software, I am not aware of anything
you can easily do to correct this problem, there is no indication
anywhere in any of the iOpus documentation that it is possible to turn
off this addition to the User Agent setting.

Here are some other similarly flawed examples of OS detection, all of
which will get false positives for Mac with your User Agent:

http://www.xs4all.nl/~ppk/js/detect.html
In this case, the use of 'else if' means that once if finds 'mac' it
stops looking.

http://forums.devshed.com/archive/5/2001/07/2/18165
In the first example, despite correctly identifying Windows at first,
it will overwrite that setting when it sees the 'mac'.

http://phpbuilder.com/columns/tim20000821.php3?page=2
This code should work for you, as it checks for Windows first, and
once it finds that, it stops looking. However, if you were using a Mac
and had “Mac_PowerPC; Magical Windows Plugin” in your User Agent, you
would suffer the opposite fate.


I hope this answers the question for you – sorry I can't offer a
simple solution that doesn't require uninstalling the iOpus software.
It should be possible, technically, to change the outgoing User Agent
setting, however in reality that option maybe quite problematic.

Regards,
sycophant-ga

Request for Answer Clarification by mikeintexas-ga on 05 Feb 2003 12:17 PST
Hi,
I have uninstalled Opera, deleted all cookies, deleted temporary
internet files, and deleted temporary files. I still get recognized as
a Mac user. I'm not a programmer, so some of the links given, although
interesting, did not help solve the problem. What is the name of the
file that servers 'read' on my computer? Can I edit that and delete
the iOpus Macros section? Or just delete it entirely? Thanks for any
help.

Clarification of Answer by sycophant-ga on 05 Feb 2003 14:50 PST
Hi Mike,

You uninstalled Opera? Opera is not related to the iOpus plugin. 

You can uninstall iOpus plugin from the Add/Remove Programs system by
doing the following:

Start -> Settings -> Control Panels -> Add/Remove Programs
In Add/Remove Programs, select 'iOpus Internet Macros' and click
uninstall.

If you do not want to actually uninstall the Internet Macros software,
you maybe able to get an upgrade. I installed a recent demo version
for testing purposes, and it identifies itself in the following way:
"Mozilla/4.0 (compatible; MSIE 5.01; Windows NT 5.0; iOpus-I-M)"
Which would not cause the same problems you experience, so it seemd
iOpus may have become aware of the problem in earlier versions and
altered it.

I am not very familiar with the software in question, so if you want
to use this option, I suggest you email iOpus at the address I
provided in my answer above and investigate the options with them.

As for editing a file - the servers don't read a file. The User Agent
is a piece of information that you browser sends them, it's an
introduction of sorts. Internet Explorer creates the User Agent string
when it is run, and there are no simple steps you can take to alter
what IE sends to the server.

I hope this helps you, let me know if you are still stuck.

Regards,
sycophant-ga

Request for Answer Clarification by mikeintexas-ga on 05 Feb 2003 18:27 PST
sycophant,
I must of had a 'brain freeze'. For some reason I 'saw' iOpus and it
translated to Opera. That Internet Macro program was uninstalled many
moons ago, and the uninstaller didn't take everything out of the
Registry. So I went into the Registry and searched for iopus, for
InternetMacros, and deleted it manually, especially when I got to the
User Agent field. It worked!! I tested it at audible.com and real.com
and the links you gave me and I'm no longer a Mac user!! Thanks for
your help. I would NEVER have known about those initial server strings
etc... Once you got me on track, it was fixable.

MikeInTexas

Clarification of Answer by sycophant-ga on 05 Feb 2003 19:35 PST
Great, I am glad you found that - the version I installed seems to
have installed a little differently as I couldn't find any related
registry settings that were affecting the User Agent.

Glad I could help!

Regards,
sycophant-ga
mikeintexas-ga rated this answer:4 out of 5 stars
Very helpful and willing to answer follow up questions until I got the
problem solved. Would definitely recommend.

Comments  
Subject: Re: PC mistakenly identified as Mac by webservers
From: austin_trill-ga on 03 Feb 2003 23:02 PST
 
Wonder if it's parsing "macros" as "MacOS"?

Important Disclaimer: Answers and comments provided on Google Answers are general information, and are not intended to substitute for informed professional medical, psychiatric, psychological, tax, legal, investment, accounting, or other professional advice. Google does not endorse, and expressly disclaims liability for any product, manufacturer, distributor, service or service provider mentioned or any opinion expressed in answers or comments. Please read carefully the Google Answers Terms of Service.

If you feel that you have found inappropriate content, please let us know by emailing us at answers-support@google.com with the question ID listed above. Thank you.
Search Google Answers for
Google Answers  


Google Home - Answers FAQ - Terms of Service - Privacy Policy