Ir ao conteúdo
  • Cadastre-se

Ajuda em ASP


andreaxl

Posts recomendados

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.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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 Function

Response.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.

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

  • Membro VIP

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.

Link para o comentário
Compartilhar em outros sites

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.

Link para o comentário
Compartilhar em outros sites

Arquivado

Este tópico foi arquivado e está fechado para novas respostas.

Sobre o Clube do Hardware

No ar desde 1996, o Clube do Hardware é uma das maiores, mais antigas e mais respeitadas comunidades sobre tecnologia do Brasil. Leia mais

Direitos autorais

Não permitimos a cópia ou reprodução do conteúdo do nosso site, fórum, newsletters e redes sociais, mesmo citando-se a fonte. Leia mais

×
×
  • Criar novo...