Após você publicar o seu site ASP .NET na web você vai querer saber quem são os visitantes do site. Uma forma de fazer isso é consultar o o seu log de eventos no seu servidor host. Outra é você mesmo criar um código que faça este serviço registrando o que lhe interessa saber.
Em geral você vai querer obter o endereço IP e o nome DNS do visitante e também saber qual página que foi acessada. Então vejamos como podemos fazer isso usando a linguagem C# em uma aplicação ASP .NET.
O endereço IP, de forma genérica, é um endereço que indica o local de um nó em uma rede local ou pública.
Para um melhor uso dos endereços de equipamentos em rede pelas pessoas, utiliza-se a forma de endereços de domínio, tal como "www.macoratti.net". Cada endereço de domínio é convertido em um endereço IP pelo DNS.
request.ClientCertificate - Exibe informações sobre o certificado de segurança do usuário. Usado em sites com transmissão segura de dados (https)
Este objeto permite ao programador obter informações sobre muitas variáveis de ambiente. Você pode usar o ServerVariables juntamente com opções de segurança do diretório IIS(Internet Information Service) para determinar quem está acessando seu site. Você também pode pegar o endereço IP do visitante usando o objeto ServerVariables.
A coleção ServerVariables contém toda a informação gerada quando da requisição de um serviço pelo navegador combinada com as variáveis do ambiente do servidor.
Path_info – Armazena a informação do caminho da URL requisitada pelo navegador.(Não armazena a raiz do diretório do endereço URL.)
CONTENT_LENGHT – permite determinar a extensão do conteúdo da solicitação HTTP do cliente usando o método POST.
Query_String – Contém os parâmetros passados como parte de uma requisição a uma URL . (Tudo depois de um "? " é armazenado)
AUTH_TYPE - O método de autenticação que o servidor usa para validar usuários quando eles tentam acessar um script protegido.
A seguir temos um exemplo que exibe as variáveis do servidor da página : ASP 101 - Active Server Pages 101
Apenas para mostrar a você como usar estas variáveis vamos criar um projeto ASP .NET usando o Visual Web Developer 2010 Express Edition com o nome getVariaveis;
A seguir inclua uma nova página com o nome Default.aspx a partir do menu Project-> Add New Item escolhendo o template Web Form e informando Default.aspx;
A seguir inclua uma tabela na página Default.aspx com, via menu Table-> Insert Table, com 7 linhas e 2 colunas ;
Se você estiver fazendo uma conexão via um servidor Proxy o método Request.ServerVariables["REMOT_ADDR"] irá retornar somente o endereço IP do servidor proxy e não o IP real da máquina do cliente. Para obter o endereço IP real do cliente via servidor proxy devemos usar : Request.ServerVariables["HTTP_X_FORWARDED_FOR"]
Os objetos Response e Request ainda existem e podem usados em páginas ASP.NET. Estes objetos representam a informação chegando no servidor Web a partir do navegador(Request) e a informação saindo do servidor para o navegador(Response).
Abaixo temos um exemplo bem simples de como fazer isso onde incluímos no evento Load da página o código para obter as informações do visitante.
No código acima estamos criando um arquivo texto chamado visitantes.log na raíz da aplicação e logando as informações de data, endereço ip, nome do host e página requisitada.
Após executarmos o projeto web obtemos o seguinte resultado verificando o arquivo visitantes.log que foi gravado no raiz da aplicação:
"O que era desde o princípio, o que ouvimos, o que vimos com os nossos olhos, o que contemplamos e as nossas mãos apalparam, a respeito do Verbo da vida(pois a vida foi manifestada, e nós a temos visto, e dela testificamos, e vos anunciamos a vida eterna, que estava com o Pai, e a nós foi manifestada);" 1 João 1:1-2