Por questões de segurança, ou simplesmente de controle de acesso, construímos sistemas WEB onde uma das informações armazenadas é o IP (Internet Protocol) do HOST remoto (usuário).
Neste artigo veremos como recuperar o IP de um usuário que acessa um sistema WEB.
IP ou Internet Protocol é uma tecnologia que permite a comunicação padronizada entre computadores, mesmo que estes sejam de plataformas diferentes. Em resumo, IP é uma identificação única de um computador conectado a Internet.
Para recuperar informações dos usuários que acessam um sistema WEB, utilizaremos a coleção ServerVariables do objeto Request.
A coleção ServerVariables contém todas as informações geradas a partir de uma determinada requisição WEB combinada com variáveis do servidor.
Em particular, utilizaremos duas variáveis: HTTP_X_FORWARDED_FOR e REMOTE_ADDR. A primeira recupera o IP do HOST caso o mesmo esteja conectado à Internet utilizando um Proxy. A segunda recupera o IP do HOST remoto caso o mesmo não esteja conectado à Internet utilizando um Proxy.
Abaixo temos o exemplo de um método em C# que recupera o IP do HOST remoto:
public string IPUsuario()
{
// Conexão utilizando proxy
string strIPUsuario = System.Web.HttpContext.Current.Request.
ServerVariables["HTTP_X_FORWARDED_FOR"];
if (strIPUsuario == null)
{
// Conexão sem utilizar proxy
strIPUsuario = System.Web.HttpContext.Current.Request.
ServerVariables["REMOTE_ADDR"];
}
return strIPUsuario;
}Obs: Caso você execute este método a nível local (localhost) o mesmo retornará o IP padrão do diretório virtual (127.0.0.1).
Abaixo temos a representação gráfica da interface do nosso exemplo quando executado a nível local:
Abaixo temos a representação gráfica da interface do nosso exemplo quando executado a nível de servidor:
Neste artigo abordamos como recuperar o IP de um HOST remoto para controle de acesso eu segurança.
Espero ter contribuído!Até o próximo!
Os textos publicados neste espaço são de responsabilidade única de seus autores (colunistas e leitores) e podem não expressar necessariamente a opinião do iMasters.
Diego Gazotto trabalha com programação para web há dois anos. É graduando em Processamento de Dados pela FATEC – TQR. Atua como desenvolvedor na plataforma .NET na POLITEC – TQR (www.politec.com.br). Verdadeiro entusiasta em arquitetura de sistemas web.
2001 - iMasters FFPA Informática Ltda - Todos os direitos reservados.