Descobrir Sistema Operacional Usado

Pessoal alguem sabe se existe alguma maneira de descobrir o sistema operacional usado pelo cliente que está acessando a aplicação web?
Se existe alguem pode me dar alguma dica.

algo como o site www.omeuip.com

procurei no google ou mesmo no guj mas não encontrei nada.

Obrigado.

Existe um cabeçalho HTTP (User-Agent) que identifica.

Mas é facilmente falsificável e jamais deve ser usado para estatísticas “sérias”.

Se vc quiser tentar este codigo aqui mas acho que não aparece o sistema operacional, tirei do livro do Edson Gonçalves.

[code]Enumeration e=request.getHeadersNames();
while(e.hasMoreElementes()){
String cabecalho=(String)e.nextElement();
String html=""+cabecalho+":+
request.getHeader(cabebalho);
html="
"

}[/code]

se der certo ou se vc já tiver tentado isso por favor posta ai.

Não sei se ajuda, mas a JVM consegue identificar através da linha:

private String osName = System.getProperty("os.name");    

Usei esta propriedade em uma aplicação desktop, entao nao sei se funcionará em uma aplicação Web.

[quote=XpLoDeR]Não sei se ajuda, mas a JVM consegue identificar através da linha:

private String osName = System.getProperty("os.name");    

Usei esta propriedade em uma aplicação desktop, entao nao sei se funcionará em uma aplicação Web.

[/quote]

Na verdade isso não irá funcionar em aplicações WEB, este comando retornará o OS do servidor e não do cliente.

A única maneira é no header do pacote http.

É claro que vc pode criar um applet ou flash que tenta detectar estas e outras informações e informa via ‘ajax’ por exemplo. Acho que até javascript deve conseguir.

Mas para isso o applet terá que ser assinado… acho q nao vale a pena… acessar recursos da máquina com applet sem assinar não dá.

Pessoal vou tentar as dicas que me passara…logo posto o resultado…
o System.getProperty(“os.name”) eu ja até sabia que não dava, ele me retorna o nome do S.O em que a aplicação está hospedada.
Mas vou testar as outras opções…

O comando getHeaderNames() até traz a versão …windows NT XX, mas não é nada confiável…
que por exemplo se eu acessar de um windows vista e de um windows server 2008 por exemplo ele traz a mesma versão.

via javascrip pode ser?

function browser() {

nome = navigator.appName
versao = navigator.appVersion

document.write("&lt;center&gt;&lt;tt&gt;<b>Você Está Navegando No <font color=blue>"+nome+"</font> Versão <font color=blue>"+versao+"</font></b>&lt;/tt&gt;&lt;/center&gt;")

}

que viagem, o js serve para descobrir o browser, foi mal heheheh

Por favor se conseguir posta ai.
Obrigado por tentado minha opção.

XpLoDeR, esse código dentro de uma página JSP retornaria o S.O. utilizado no servidor Web, não o da máquina do cliente.