How do I detect Windows NT with javascript?

I am able to detect win3.1, win95, and macs using the following script:

<script language="javascript">
if (navigator.appVersion.indexOf("95") != -1)
document.write('<font size="3"><b>Windows 95</b></font>');
else if (navigator.appVersion.indexOf("PPC") != -1)
document.write('<font size="3"><b>Apple PC</b></font>');
else if (navigator.appVersion.indexOf("16") != -1)
document.write('<font size="3"><b>Windows 3.1</b></font>');
</script>

what "navigator.appVersion.indexOf() can I use to detect Windows NT?

Thanks!
Jonathan
esdrasAsked:
Who is Participating?

[Product update] Infrastructure Analysis Tool is now available with Business Accounts.Learn More

x
I wear a lot of hats...

"The solutions and answers provided on Experts Exchange have been extremely helpful to me over the last few years. I wear a lot of hats - Developer, Database Administrator, Help Desk, etc., so I know a lot of things but not a lot about one thing. Experts Exchange gives me answers from people who do know a lot about one thing, in a easy to use platform." -Todd S.

jshamlinCommented:
You're stuck - the appVersion doesn't tell you what operating system the user has, only the operating system the *browser* was designed for.  Windows NT use the same applications (by and large) as Win95 - so when you check for indexOf("95"), an NT box will return the same value as a Win95 box (in fact, there is no NT-only version of Netscape).  it's also entirely possible that there are a few gormless individuals running 16-bit browsers in emulation mode on their Win95 boxes.

You'll have the same problem distinguishing between Mac users - who's on 68040 using System 6 and who's on a PPC using Rhapsody
0

Experts Exchange Solution brought to you by

Your issues matter to us.

Facing a tech roadblock? Get the help and guidance you need from experienced professionals who care. Ask your question anytime, anywhere, with no hassle.

Start your 7-day free trial
alamoCommented:
Well... not necessarily. I was in fact noticing the other day that my Netscape 4.03 on WinNT did in fact identify itself as NT in the user agent string. I am not on that machine right now or I'd put the value here, I will later if noone else does in the interim.

It is correct that you can't be 100% sure what platform/browser the user is on.  But when you use javascript you can never be anywhere close to 100% sure the code will execute properly or at all, so for many purposes it's ok.
0
jshamlinCommented:
A valid point - Communicator is the first version of Netscape (or any other browser I'm aware of) that does, in fact, have an NT-specific version - but it's entirely possible to run the W96 version on an NT box or vice versa.

Another note from "in the meantime" - I've been goofing around a bit at home, running Windows in emulation mode on a Mac, and the appVersion identified me as a WindowsNT user.  What fun!  I suppose the same thing would happen on a UNIX terminal emulating windows, etc.
0
alamoCommented:
All of the following are on NT4 workstation.

Netscape Navigator 4:
4.03 [en] (WinNT; U ;Nav)

Internet Explorer 3.02:
2.0 (compatible; MSIE 3.02; Windows NT)

Netscape Navigator 3:
3.0Gold (WinNT; I)

The browser seems to have some sense typically as to what platform it's running on, but as indicated before can't be trusted completely. So to answer the original question: if absolute reliability isn't important, it seems you should use the following:

else if (navigator.appVersion.indexOf("WinNT") != -1
      || navigator.appVersion.indexOf("Windows NT") != -1)
 document.write('<font size="3"><b>Windows NT</b></font>');
0
alamoCommented:
What are you going to do with this?
0
It's more than this solution.Get answers and train to solve all your tech problems - anytime, anywhere.Try it for free Edge Out The Competitionfor your dream job with proven skills and certifications.Get started today Stand Outas the employee with proven skills.Start learning today for free Move Your Career Forwardwith certification training in the latest technologies.Start your trial today
JavaScript

From novice to tech pro — start learning today.