Ajuda em ASP - Programação web - Fórum do Clube do Hardware
Home Programação e desenvolvimento Programação web Ajuda em ASP
Ajuda em ASP
andreaxl, 28 de dezembro de 2004
Pessoal, to precisando disso urgente. Preciso de uma função em ASP para pegar o sistema operacional do cliente q está acessando a página. Existe como eu usar o Request.ServerVariables("HTTP_USER_AGENT"), mas este retorna uma string com vários parâmetros e todos despadronizados além de retornar os sistemas operacionais assim: windows 5.1, windows 5.0. Alguém conhece alguma função que resolva meu problema?Muito obrigado.André Aguiar. Compartilhar este post
Bom, acho que a única variável que retorna s.o. na coleção "ServerVariables" é essa mesmo. Tente algo assim:Function RetornarOS(OS) Dim PosicaoInicial, PosicaoFinal PosicaoInicial = InStr(1, OS, "Windows", 1) If Not PosicaoInicial = 0 Then PosicaoFinal = InStr(PosicaoInicial, OS, ";", 1) If PosicaoFinal = 0 Then PosicaoFinal = InStr(PosicaoInicial, OS, ")", 1) End If RetornarOS = Mid(OS, PosicaoInicial, (PosicaoFinal - PosicaoInicial)) Else RetornarOS = "[falha ao identificar Sistema Operacional]" End If Select Case RetornarOS Case "Windows NT 5.0" RetornarOS = "Microsoft Windows 2000" Case "Windows NT 5.1" RetornarOS = "Microsoft Windows XP" Case "Windows NT 4.0" RetornarOS = "Microsoft Windows NT" Case Else RetornarOS = "Microsoft Windows 95, 98" End Select End FunctionResponse.Write "Sistema Operacional: " & RetornarOS(Request.ServerVariables("HTTP_USER_AGENT"))%>Obs.: na estrutura "Select Case" eu acho melhor você verificar se os nomes dos s.o. coincidem com as versões que eu coloquei, pois eu só fiz assim para exemplo. Mas eu acho que os dois primeiros estão certos. Compartilhar este post
Oh Clemente, brigadão... acho q a solução já está começando a ficar pronta.. gostaria de saber agora se existe mesmo uma padronização para estes sistemas operacionais.. exemplo: se cliente rodando windows 2000 acessar a página irá retorna sempre windows 5.0 ou tem mais algum, tipo windows 5.0.1. Isto é um exemplo, se alguém souber e puder me ajudar com essa padronização.Obrigado.André Aguiar. Compartilhar este post
se cliente rodando windows 2000 acessar a página irá retorna sempre windows 5.0 ou tem mais algum, tipo windows 5.0.1.Os navegadores respeitam a regra de "padronização" e sempre enviam o nome correto do sistema. O Windows 2000 é realmente o Windows NT 5.0 -- "2000" foi apenas um golpe de marketing da Microsoft (que ficou sabendo que a maioria das pessoas não gostava do nome "NT" pois parecia ser velho).Acontece que hoje em dia o uso de firewalls e filtros acaba mudando o user-agent. Vários firewalls modificam o user-agent para Netscape4 (Mozilla 4.0 Compatible) para adicionar mais "privacidade". Portanto, em alguns casos, os dados enviados pelo navegador serão modificados antes de enviados -- não pelo navegador, mas por sistemas de segurança e privacidade, logo fazendo com que a função que detecta o OS não funcione perfeitamente. Compartilhar este post
FallenHawk, muito obrigado pela resposta. Realmente sei que vai ser difícil fazer o que eu quero, que são as estatisticas de visita de um site (sei q existem aplicações prontas para isso, mas a empresa em q trabalho está vendendo uma aplicação deste tipo, ai já viu né). De qualquer forma, se alguem souber de uma aplicação que roda assim de maneira legal e q já tenha as funções já prontas vou agradecer demais.Obrigado.André Aguiar. Compartilhar este post