Desenvolvimento - C#
Recuperando IP de um HOST remoto
Neste artigo veremos como recuperar o IP de um usuário que acessa um sistema WEB.
por Diego Gazotto Dezembro1. Introdução
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.
2. IP
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.
3. ServerVariables
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.
4. Recuperando IP
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:
4. Finalizando
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!
Diego Gazotto Dezembro